[13/19] ghostscript: Fix compilation with GCC 14

Message ID 20240819100608.991138-14-michael.tremer@ipfire.org
State Staged
Commit 7c41a2e4a1ae92c305276ac1b78f7f16068c9c9b
Headers
Series [01/19] expect: Fix build with GCC 14.2 |

Commit Message

Michael Tremer Aug. 19, 2024, 10:06 a.m. UTC
  Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
---
 lfs/ghostscript                               |  1 +
 .../ghostscript-10.03.1-bug707649.patch       | 29 +++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 100644 src/patches/ghostscript-10.03.1-bug707649.patch
  

Patch

diff --git a/lfs/ghostscript b/lfs/ghostscript
index f198a0d1b..0709f1800 100644
--- a/lfs/ghostscript
+++ b/lfs/ghostscript
@@ -89,6 +89,7 @@  $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 	cd $(DIR_APP) && rm -rf expat freetype icclib jasper jpeg jpegxr \
 		lcms lcms2 libpng openjpeg zlib cups/libs
+	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ghostscript-10.03.1-bug707649.patch
 	cd $(DIR_APP) && \
 		./configure \
 			--prefix=/usr \
diff --git a/src/patches/ghostscript-10.03.1-bug707649.patch b/src/patches/ghostscript-10.03.1-bug707649.patch
new file mode 100644
index 000000000..0d6fb7583
--- /dev/null
+++ b/src/patches/ghostscript-10.03.1-bug707649.patch
@@ -0,0 +1,29 @@ 
+From 90cabe08422afdd16bac5dd9217602679d943045 Mon Sep 17 00:00:00 2001
+From: Ken Sharp <Ken.Sharp@artifex.com>
+Date: Fri, 8 Mar 2024 09:19:05 +0000
+Subject: Bug #707649 - fix apply_sasl in error cases.
+
+Forgot to dereference the pointers before assigning the values, if we
+get non-fatal errors returned from stringprep.
+---
+ pdf/pdf_sec.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pdf/pdf_sec.c b/pdf/pdf_sec.c
+index 565ae80ca..7e8f6719d 100644
+--- a/pdf/pdf_sec.c
++++ b/pdf/pdf_sec.c
+@@ -183,8 +183,8 @@ static int apply_sasl(pdf_context *ctx, char *Password, int Len, char **NewPassw
+          * this easy: the errors we want to ignore are the ones with
+          * codes less than 100. */
+         if ((int)err < 100) {
+-            NewPassword = Password;
+-            NewLen = Len;
++            *NewPassword = Password;
++            *NewLen = Len;
+             return 0;
+         }
+ 
+-- 
+cgit v1.2.3
+