diff options
Diffstat (limited to 'source/ap')
-rw-r--r-- | source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch | 52 | ||||
-rwxr-xr-x | source/ap/ghostscript/ghostscript.SlackBuild | 5 |
2 files changed, 56 insertions, 1 deletions
diff --git a/source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch b/source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch new file mode 100644 index 000000000..352dbd866 --- /dev/null +++ b/source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch @@ -0,0 +1,52 @@ +From 9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa Mon Sep 17 00:00:00 2001 +From: Ken Sharp <Ken.Sharp@artifex.com> +Date: Mon, 18 Sep 2023 15:47:12 +0100 +Subject: [PATCH] PDF interpreter - fix PageList processing + +Bug #707137 "Error processing PDF while using the parameter -sPageList" + +There are actually 2 problems; firstly a copy/paste error of the +operand stack index when returning the page list meant that the values +were returned in reverse order. + +Secondly the PageList string wasn't actually being passed as an operand +at all. + +This only affects the PDF interpreter because it (unfortunately) uses a +different mechanism from the PostScript interpreter. +--- + Resource/Init/pdf_main.ps | 3 +-- + psi/zpdfops.c | 2 +- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps +index e541835ae..73097f1a7 100644 +--- a/Resource/Init/pdf_main.ps ++++ b/Resource/Init/pdf_main.ps +@@ -710,8 +710,7 @@ currentdict /PDFSwitches undef + { + /PageList where { + pop +- pdfpagecount +- .PDFparsePageList ++ PageList pdfpagecount .PDFparsePageList + dup 0 eq { % No ranges, error + (\n **** Error: Invalid PageList: ) print + PageList print +diff --git a/psi/zpdfops.c b/psi/zpdfops.c +index 207130f1a..e7e0a42ee 100644 +--- a/psi/zpdfops.c ++++ b/psi/zpdfops.c +@@ -1447,7 +1447,7 @@ static int zPDFparsePageList(i_ctx_t *i_ctx_p) + } + /* push the even/odd, start, end triples on the stack */ + for (i=0; i < size; i++) { +- o = ref_stack_index(&o_stack, 0); ++ o = ref_stack_index(&o_stack, size - i); + if (o == NULL) + return_error(gs_error_stackunderflow); + /* skip the initial "ordered" flag */ +-- +2.34.1 + + diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild index 454ea0209..aff004278 100755 --- a/source/ap/ghostscript/ghostscript.SlackBuild +++ b/source/ap/ghostscript/ghostscript.SlackBuild @@ -27,7 +27,7 @@ if [ -r gnu-ghostscript-*.tar.?z ]; then SRCPREFIX="gnu-" fi VERSION=${VERSION:-$(echo $SRCPREFIX$PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -76,6 +76,9 @@ cd ${SRCPREFIX}${PKGNAM}-$VERSION || exit 1 # Remove unmaintained garbage: rm -rf freetype jpeg lcms2 libpng libtiff png tiff zlib +# Fix PDF interpreter: +cat $CWD/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch | patch -p1 --verbose || exit 1 + # Regenerate ./configure. Needed if patched, or to prevent libtool mismatch. autoreconf --force --install ( cd jbig2dec ; autoreconf --force --install ) |