Hello community, here is the log from the commit of package poppler for openSUSE:Factory checked in at 2017-08-12 19:37:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/poppler (Old) and /work/SRC/openSUSE:Factory/.poppler.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poppler" Sat Aug 12 19:37:32 2017 rev:140 rq:514674 version:0.57.0 Changes: -------- --- /work/SRC/openSUSE:Factory/poppler/poppler-qt.changes 2017-06-30 18:38:20.808017546 +0200 +++ /work/SRC/openSUSE:Factory/.poppler.new/poppler-qt.changes 2017-08-12 19:37:44.243978261 +0200 @@ -1,0 +2,19 @@ +Wed Aug 2 13:10:40 UTC 2017 - zai...@opensuse.org + +- Update to version 0.57.0: + + core: + - Fix parsing of Type 1 fonts with newlines in encoding + sequences (fdo#101728). + - Fix crash in broken documents. + + utils: + - pdfunite: Fix crash with broken documents (fdo#101208). + - pdftohtml: skip control characters (fdo#101770). + - pdfseparate: minor improvement to the documentation + (fdo#101800). + + build system: + - cmake: Set RUNPATH for poppler shared libs (fdo#101945). + - configure: fix --disable-FEATURE actually enabling the + feature. +- Bump soversion following upstream changes. + +------------------------------------------------------------------- poppler-qt5.changes: same change poppler.changes: same change Old: ---- poppler-0.56.0.tar.xz New: ---- poppler-0.57.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ poppler-qt.spec ++++++ --- /var/tmp/diff_new_pack.a1TWAa/_old 2017-08-12 19:37:45.995732590 +0200 +++ /var/tmp/diff_new_pack.a1TWAa/_new 2017-08-12 19:37:45.999732029 +0200 @@ -21,11 +21,11 @@ Name: poppler-qt %define _name poppler -Version: 0.56.0 +Version: 0.57.0 Release: 0 # Actual version of poppler-data: %define poppler_data_version 0.4.6 -%define poppler_sover 67 +%define poppler_sover 68 %define poppler_cpp_sover 0 %define poppler_glib_sover 8 %define poppler_qt4_sover 4 poppler-qt5.spec: same change ++++++ poppler.spec ++++++ --- /var/tmp/diff_new_pack.a1TWAa/_old 2017-08-12 19:37:46.063723055 +0200 +++ /var/tmp/diff_new_pack.a1TWAa/_new 2017-08-12 19:37:46.067722494 +0200 @@ -21,11 +21,11 @@ Name: poppler %define _name poppler -Version: 0.56.0 +Version: 0.57.0 Release: 0 # Actual version of poppler-data: %define poppler_data_version 0.4.6 -%define poppler_sover 67 +%define poppler_sover 68 %define poppler_cpp_sover 0 %define poppler_glib_sover 8 %define poppler_qt4_sover 4 ++++++ poppler-0.56.0.tar.xz -> poppler-0.57.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/CMakeLists.txt new/poppler-0.57.0/CMakeLists.txt --- old/poppler-0.56.0/CMakeLists.txt 2017-06-21 22:34:52.000000000 +0200 +++ new/poppler-0.57.0/CMakeLists.txt 2017-07-31 23:39:14.000000000 +0200 @@ -22,7 +22,7 @@ endif() set(POPPLER_MAJOR_VERSION "0") -set(POPPLER_MINOR_VERSION "56") +set(POPPLER_MINOR_VERSION "57") set(POPPLER_MICRO_VERSION "0") set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}") @@ -55,6 +55,8 @@ set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") set(SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "Share directory name") +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + set(TESTDATADIR "${CMAKE_SOURCE_DIR}/../test" CACHE STRING "Specify test data dir.") if(NOT (EXISTS ${TESTDATADIR} AND EXISTS ${TESTDATADIR}/test-poppler.c)) message(WARNING " @@ -537,7 +539,7 @@ else(MSVC) add_library(poppler SHARED ${poppler_SRCS}) endif(MSVC) -set_target_properties(poppler PROPERTIES VERSION 67.0.0 SOVERSION 67) +set_target_properties(poppler PROPERTIES VERSION 68.0.0 SOVERSION 68) target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS}) install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/ChangeLog new/poppler-0.57.0/ChangeLog --- old/poppler-0.56.0/ChangeLog 2017-06-21 22:48:22.000000000 +0200 +++ new/poppler-0.57.0/ChangeLog 2017-07-31 23:50:50.000000000 +0200 @@ -1,3 +1,206 @@ +commit c167f35b8c3fd7e94fa97385949b2c133d918ed4 +Author: Albert Astals Cid <aa...@kde.org> +Date: Mon Jul 31 23:39:37 2017 +0200 + + Poppler 0.57 + + CMakeLists.txt | 4 ++-- + NEWS | 14 ++++++++++++++ + configure.ac | 2 +- + cpp/Doxyfile | 2 +- + poppler/Makefile.am | 2 +- + qt4/src/Doxyfile | 2 +- + qt5/src/Doxyfile | 2 +- + 7 files changed, 21 insertions(+), 7 deletions(-) + +commit be0384d2220a75d2666b1fd2228e156b1595a57f +Author: Albert Astals Cid <aa...@kde.org> +Date: Mon Jul 31 23:34:57 2017 +0200 + + Add missing (C) + + poppler/StructTreeRoot.cc | 1 + + 1 file changed, 1 insertion(+) + +commit 0e7f6cb1c42db3d65395365833472ff859def87a +Author: Jannick <thirdedit...@gmx.net> +Date: Mon Jul 31 19:53:12 2017 +0200 + + Fix some warnings in some unusual #ifdef combinations + + Bug #101812 + + poppler/PSOutputDev.cc | 2 +- + poppler/Stream.cc | 5 ++--- + 2 files changed, 3 insertions(+), 4 deletions(-) + +commit f55d6a64dd3f69fa9c1ba984218809cc50c9b052 +Author: Albert Astals Cid <aa...@kde.org> +Date: Mon Jul 31 19:45:32 2017 +0200 + + Add missing (C) + + utils/pdfseparate.cc | 1 + + 1 file changed, 1 insertion(+) + +commit 543b0ea219191122fee0583ce62c19e31de34109 +Author: Roland Hieber <r.hie...@pengutronix.de> +Date: Mon Jul 17 11:35:32 2017 +0200 + + configure.ac: fix --disable-FEATURE actually enabling the feature + + Forwarded: https://bugs.freedesktop.org/show_bug.cgi?id=101818 + + A frequently seen antipattern is to use + AC_ARG_ENABLE(feature, help, action-if-given, action-if-not-given) as + AC_ARG_ENABLE(feature, help, action-if-enabled, action-if-disabled). + However, action-if-given is also evaluated for --disable-FEATURE (with + enableval=no), which results in --disable-FEATURE and --enable-FEATURE + doing the same in this case. + + Rewrite the single-precision, fixedpoint and cmyk arguments + accordingly + so the user is not confused if they explicitely want to disable those + options. + + Signed-off-by: Roland Hieber <r.hie...@pengutronix.de> + + configure.ac | 32 ++++++++++++++++++++++++++------ + 1 file changed, 26 insertions(+), 6 deletions(-) + +commit 92ad743b63c3e82211ea0b2e4d4471dd3f71cebc +Author: Léonard Michelet <leonard.miche...@smile.fr> +Date: Mon Jul 31 19:40:06 2017 +0200 + + pdfseparate: minor improvement to the documentation + + Bug #101800 + + utils/pdfseparate.1 | 7 ++++--- + utils/pdfseparate.cc | 2 +- + 2 files changed, 5 insertions(+), 4 deletions(-) + +commit 0a2096743fa749a8a7d4caa714eecbe8a9661619 +Author: Albert Astals Cid <aa...@kde.org> +Date: Mon Jul 31 16:52:46 2017 +0200 + + Add some more overrides + + poppler/CurlCachedFile.h | 4 ++-- + poppler/CurlPDFDocBuilder.h | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +commit 213ae24b4df97f557e771060e37197d0e57f6f7f +Author: Jannick <thirdedit...@gmx.net> +Date: Sun Jul 16 19:51:49 2017 +0200 + + added override tag to function declarations + + poppler/FlateStream.h | 16 ++++++++-------- + poppler/JPXStream.h | 16 ++++++++-------- + poppler/Stream.h | 16 ++++++++-------- + 3 files changed, 24 insertions(+), 24 deletions(-) + +commit ab371fe60568947e355d89e28d489f7f9a1a7404 +Author: Jason Crain <ja...@inspiresomeone.us> +Date: Sun Jul 16 12:07:54 2017 -0500 + + pdftohtml: skip control characters + + W3C disallows them and they cause a warning in PHP. + + https://bugs.freedesktop.org/show_bug.cgi?id=101770 + + utils/HtmlFonts.cc | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 0f4ea2f18b1953ccc88bcbd6b16ede828b44e561 +Author: Adrian Johnson <ajohn...@redneon.com> +Date: Mon Jul 10 21:06:30 2017 +0930 + + Fix parsing of Type 1 fonts with newlines in encoding sequences + + Adobe Type 1 font spec states that the encoding sequences should be of + the form: + + dup index /name put + + The bug 101728 test case has the encoding sequences in the form: + + dup + index /name put + + Make the Type 1 parse handle encoding sequences split over more than + one line. + + Bug 101728 + + fofi/FoFiType1.cc | 40 +++++++++++++++++++++++++++++++++++----- + 1 file changed, 35 insertions(+), 5 deletions(-) + +commit 75fff6556eaf0ef3a6fcdef2c2229d0b6d1c58d9 +Author: Caolán McNamara <caol...@redhat.com> +Date: Wed Jul 12 14:12:46 2017 +0100 + + CVE-2017-9865 (fdo#100774) avoid stack buffer overflow + + in GfxImageColorMap:getGray + + by passing first arg to getGray of maximum possibly required size + + and similar in HtmlOutputDev::drawPngImage + + utils/HtmlOutputDev.cc | 6 ++++-- + utils/ImageOutputDev.cc | 6 ++++-- + 2 files changed, 8 insertions(+), 4 deletions(-) + +commit 5d0c23a9f6cdc3fd216335124788958f46932158 +Author: Jan-Erik S <janerik234...@gmail.com> +Date: Sat Jul 29 18:23:39 2017 +0200 + + Fix crash in broken document + + poppler/StructTreeRoot.cc | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 852fd28674e14f25c6902c0adab19909f73f2632 +Author: David Faure <fa...@kde.org> +Date: Sat Jul 29 18:18:23 2017 +0200 + + Set RUNPATH for poppler shared libs + + Bug #101945 + + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +commit 771c82623e8e1e0c92b8ca6f7c2b8a81ccbb60d3 +Author: Albert Astals Cid <aa...@kde.org> +Date: Mon Jul 3 22:44:42 2017 +0200 + + pdfunite: fix crash in broken documents + + Bug #101208 + + poppler/PDFDoc.cc | 70 + +++++++++++++++++++++++++++++++++++++++++-------------- + poppler/PDFDoc.h | 21 +++++++---------- + 2 files changed, 62 insertions(+), 29 deletions(-) + +commit 02d9b182b80d5745b79480b0b8d0eb49b0be304e +Author: Albert Astals Cid <aa...@kde.org> +Date: Wed Jun 21 22:49:26 2017 +0200 + + Poppler 0.56 + + CMakeLists.txt | 2 +- + NEWS | 8 ++++++++ + configure.ac | 2 +- + cpp/Doxyfile | 2 +- + qt4/src/Doxyfile | 2 +- + qt5/src/Doxyfile | 2 +- + 6 files changed, 13 insertions(+), 5 deletions(-) + commit 3a2759aa2a98c2157cb35731b95e393b8882f8d3 Author: Jose Aliste <jali...@src.gnome.org> Date: Tue May 16 18:44:49 2017 -0400 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/NEWS new/poppler-0.57.0/NEWS --- old/poppler-0.56.0/NEWS 2017-06-21 22:34:02.000000000 +0200 +++ new/poppler-0.57.0/NEWS 2017-07-31 23:37:31.000000000 +0200 @@ -1,3 +1,17 @@ +Release 0.57.0 + core: + * Fix parsing of Type 1 fonts with newlines in encoding sequences. Bug #101728 + * Fix crash in broken documents + + utils: + * pdfunite: Fix crash with broken documents. Bug #101208 + * pdftohtml: skip control characters Bug #101770 + * pdfseparate: minor improvement to the documentation. Bug #101800 + + build system: + * cmake: Set RUNPATH for poppler shared libs. Bug #101945 + * configure: fix --disable-FEATURE actually enabling the feature + Release 0.56.0 core: * FormFieldButton::setState() shouldn't check the field is readOnly diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/configure new/poppler-0.57.0/configure --- old/poppler-0.56.0/configure 2017-06-21 22:36:51.000000000 +0200 +++ new/poppler-0.57.0/configure 2017-07-31 23:41:57.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for poppler 0.56.0. +# Generated by GNU Autoconf 2.69 for poppler 0.57.0. # # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=poppler>. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='poppler' PACKAGE_TARNAME='poppler' -PACKAGE_VERSION='0.56.0' -PACKAGE_STRING='poppler 0.56.0' +PACKAGE_VERSION='0.57.0' +PACKAGE_STRING='poppler 0.57.0' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=poppler' PACKAGE_URL='' @@ -1554,7 +1554,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures poppler 0.56.0 to adapt to many kinds of systems. +\`configure' configures poppler 0.57.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1629,7 +1629,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of poppler 0.56.0:";; + short | recursive ) echo "Configuration of poppler 0.57.0:";; esac cat <<\_ACEOF @@ -1652,8 +1652,11 @@ --enable-build-type=[relwithdebinfo/release/debug/debugfull/profile] Build with options similar to 'cmake -DCMAKE_BUILD_TYPE=' values. - --enable-single-precision use single precision arithmetic (instead of double precision) in the Splash backend - --enable-fixedpoint use fixed point (instead of double precision) arithmetic in the Splash backend + --enable-single-precision + use single precision arithmetic (instead of double + precision) in the Splash backend + --enable-fixedpoint use fixed point (instead of double precision) + arithmetic in the Splash backend --enable-cmyk Include support for CMYK rasterization --disable-relocatable Hardcode the poppler library location (on Windows). --enable-libopenjpeg=[auto/openjpeg1/openjpeg2/unmaintained/none] @@ -1867,7 +1870,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -poppler configure 0.56.0 +poppler configure 0.57.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2561,7 +2564,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by poppler $as_me 0.56.0, which was +It was created by poppler $as_me 0.57.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3425,7 +3428,7 @@ # Define the identity of the package. PACKAGE='poppler' - VERSION='0.56.0' + VERSION='0.57.0' cat >>confdefs.h <<_ACEOF @@ -18508,7 +18511,7 @@ cat >>confdefs.h <<_ACEOF -#define POPPLER_VERSION "0.56.0" +#define POPPLER_VERSION "0.57.0" _ACEOF @@ -19024,28 +19027,46 @@ # Check whether --enable-single-precision was given. if test "${enable_single_precision+set}" = set; then : - enableval=$enable_single_precision; + enableval=$enable_single_precision; enable_single_precision=$enableval +else + enable_single_precision=no +fi + +if test x$enable_single_precision != xno; then + $as_echo "#define USE_FLOAT 1" >>confdefs.h fi - # Check whether --enable-fixedpoint was given. if test "${enable_fixedpoint+set}" = set; then : - enableval=$enable_fixedpoint; + enableval=$enable_fixedpoint; enable_fixedpoint=$enableval +else + enable_fixedpoint=no +fi + +if test x$enable_fixedpoint != xno; then + if test x$enable_single_precision != xno; then + as_fn_error $? "Choose only one of --enable-single-precision or --enable-fixedpoint!" "$LINENO" 5 + fi + $as_echo "#define USE_FIXEDPOINT 1" >>confdefs.h fi - # Check whether --enable-cmyk was given. if test "${enable_cmyk+set}" = set; then : - enableval=$enable_cmyk; + enableval=$enable_cmyk; enable_cmyk=$enableval +else + enable_cmyk=no +fi + +if test x$enable_cmyk != xno; then + $as_echo "#define SPLASH_CMYK 1" >>confdefs.h fi - # Check whether --enable-relocatable was given. if test "${enable_relocatable+set}" = set; then : enableval=$enable_relocatable; enable_relocatable=$enableval @@ -25867,11 +25888,11 @@ POPPLER_MAJOR_VERSION=0 -POPPLER_MINOR_VERSION=56 +POPPLER_MINOR_VERSION=57 POPPLER_MICRO_VERSION=0 -POPPLER_VERSION=0.56.0 +POPPLER_VERSION=0.57.0 ac_config_files="$ac_config_files Makefile goo/Makefile fofi/Makefile splash/Makefile poppler/Makefile utils/Makefile glib/Makefile glib/poppler-features.h glib/reference/Makefile glib/reference/version.xml glib/demo/Makefile test/Makefile qt4/Makefile qt4/src/Makefile qt4/tests/Makefile qt4/demos/Makefile qt5/Makefile qt5/src/Makefile qt5/tests/Makefile qt5/demos/Makefile cpp/Makefile cpp/poppler-version.h cpp/tests/Makefile poppler.pc poppler-uninstalled.pc poppler-cairo.pc poppler-cairo-uninstalled.pc poppler-splash.pc poppler-splash-uninstalled.pc poppler-glib.pc poppler-glib-uninstalled.pc poppler-qt4.pc poppler-qt4-uninstalled.pc poppler-qt5.pc poppler-qt5-uninstalled.pc poppler-cpp.pc poppler-cpp-uninstalled.pc" @@ -26531,7 +26552,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by poppler $as_me 0.56.0, which was +This file was extended by poppler $as_me 0.57.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -26597,7 +26618,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -poppler config.status 0.56.0 +poppler config.status 0.57.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/configure.ac new/poppler-0.57.0/configure.ac --- old/poppler-0.56.0/configure.ac 2017-06-21 22:34:43.000000000 +0200 +++ new/poppler-0.57.0/configure.ac 2017-07-31 23:38:40.000000000 +0200 @@ -1,5 +1,5 @@ m4_define([poppler_version_major],[0]) -m4_define([poppler_version_minor],[56]) +m4_define([poppler_version_minor],[57]) m4_define([poppler_version_micro],[0]) m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro]) @@ -122,16 +122,36 @@ fi AC_ARG_ENABLE(single-precision, -[ --enable-single-precision use single precision arithmetic (instead of double precision) in the Splash backend], -AC_DEFINE(USE_FLOAT, [1], [Use single precision arithmetic in the Splash backend])) + AC_HELP_STRING([--enable-single-precision], + [use single precision arithmetic (instead of double + precision) in the Splash backend]), + enable_single_precision=$enableval, + enable_single_precision=no) +if test x$enable_single_precision != xno; then + AC_DEFINE(USE_FLOAT, [1], [Use single precision arithmetic in the Splash backend]) +fi AC_ARG_ENABLE(fixedpoint, -[ --enable-fixedpoint use fixed point (instead of double precision) arithmetic in the Splash backend], -AC_DEFINE(USE_FIXEDPOINT, [1], [Use fixed point arithmetic in the Splash backend])) + AC_HELP_STRING([--enable-fixedpoint], + [use fixed point (instead of double precision) arithmetic + in the Splash backend]), + enable_fixedpoint=$enableval, + enable_fixedpoint=no) +if test x$enable_fixedpoint != xno; then + if test x$enable_single_precision != xno; then + AC_MSG_ERROR([Choose only one of --enable-single-precision or --enable-fixedpoint!]) + fi + AC_DEFINE(USE_FIXEDPOINT, [1], [Use fixed point arithmetic in the Splash backend]) +fi AC_ARG_ENABLE(cmyk, -[ --enable-cmyk Include support for CMYK rasterization], -AC_DEFINE(SPLASH_CMYK, [1], [Include support for CMYK rasterization])) + AC_HELP_STRING([--enable-cmyk], + [Include support for CMYK rasterization]), + enable_cmyk=$enableval, + enable_cmyk=no) +if test x$enable_cmyk != xno; then + AC_DEFINE(SPLASH_CMYK, [1], [Include support for CMYK rasterization]) +fi dnl Relocation support AC_ARG_ENABLE(relocatable, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/cpp/poppler-version.h new/poppler-0.57.0/cpp/poppler-version.h --- old/poppler-0.56.0/cpp/poppler-version.h 2017-06-21 22:37:02.000000000 +0200 +++ new/poppler-0.57.0/cpp/poppler-version.h 2017-07-31 23:42:09.000000000 +0200 @@ -21,9 +21,9 @@ #include "poppler-global.h" -#define POPPLER_VERSION "0.56.0" +#define POPPLER_VERSION "0.57.0" #define POPPLER_VERSION_MAJOR 0 -#define POPPLER_VERSION_MINOR 56 +#define POPPLER_VERSION_MINOR 57 #define POPPLER_VERSION_MICRO 0 namespace poppler diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/fofi/FoFiType1.cc new/poppler-0.57.0/fofi/FoFiType1.cc --- old/poppler-0.56.0/fofi/FoFiType1.cc 2017-06-17 18:35:25.000000000 +0200 +++ new/poppler-0.57.0/fofi/FoFiType1.cc 2017-07-31 19:35:23.000000000 +0200 @@ -17,6 +17,7 @@ // Copyright (C) 2005 Kristian Høgsberg <k...@redhat.com> // Copyright (C) 2010 Jakub Wilk <jw...@jwilk.net> // Copyright (C) 2014 Carlos Garcia Campos <carlo...@gnome.org> +// Copyright (C) 2017 Adrian Johnson <ajohn...@redneon.com> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -209,12 +210,12 @@ } void FoFiType1::parse() { - char *line, *line1, *p, *p2; + char *line, *line1, *firstLine, *p, *p2; char buf[256]; char c; int n, code, base, i, j; char *tokptr; - GBool gotMatrix; + GBool gotMatrix, continueLine; gotMatrix = gFalse; for (i = 1, line = (char *)file; @@ -241,6 +242,7 @@ for (j = 0; j < 256; ++j) { encoding[j] = NULL; } + continueLine = gFalse; for (j = 0, line = getNextLine(line); j < 300 && line && (line1 = getNextLine(line)); ++j, line = line1) { @@ -248,8 +250,26 @@ error(errSyntaxWarning, -1, "FoFiType1::parse a line has more than 255 characters, we don't support this"); n = 255; } - strncpy(buf, line, n); - buf[n] = '\0'; + if (continueLine) { + continueLine = gFalse; + if ((line1 - firstLine) + 1 > (int)sizeof(buf)) + break; + p = firstLine; + p2 = buf; + while (p < line1) { + if (*p == '\n' || *p == '\r') { + *p2++ = ' '; + p++; + } else { + *p2++ = *p++; + } + } + *p2 = '\0'; + } else { + firstLine = line; + strncpy(buf, line, n); + buf[n] = '\0'; + } for (p = buf; *p == ' ' || *p == '\t'; ++p) ; if (!strncmp(p, "dup", 3)) { while (1) { @@ -261,6 +281,9 @@ p += 2; } else if (*p >= '0' && *p <= '9') { base = 10; + } else if (*p == '\n' || *p == '\r') { + continueLine = gTrue; + break; } else { break; } @@ -268,7 +291,10 @@ code = code * base + (*p - '0'); } for (; *p == ' ' || *p == '\t'; ++p) ; - if (*p != '/') { + if (*p == '\n' || *p == '\r') { + continueLine = gTrue; + break; + } else if (*p != '/') { break; } ++p; @@ -280,6 +306,10 @@ *p2 = c; } for (p = p2; *p == ' ' || *p == '\t'; ++p) ; + if (*p == '\n' || *p == '\r') { + continueLine = gTrue; + break; + } if (strncmp(p, "put", 3)) { break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/glib/reference/html/index.html new/poppler-0.57.0/glib/reference/html/index.html --- old/poppler-0.56.0/glib/reference/html/index.html 2017-06-21 22:48:30.000000000 +0200 +++ new/poppler-0.57.0/glib/reference/html/index.html 2017-07-31 23:50:58.000000000 +0200 @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Poppler Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for Poppler 0.56.0 + for Poppler 0.57.0 </p></div> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/glib/reference/html/poppler-Version-and-Features-Information.html new/poppler-0.57.0/glib/reference/html/poppler-Version-and-Features-Information.html --- old/poppler-0.56.0/glib/reference/html/poppler-Version-and-Features-Information.html 2017-06-21 22:48:30.000000000 +0200 +++ new/poppler-0.57.0/glib/reference/html/poppler-Version-and-Features-Information.html 2017-07-31 23:50:58.000000000 +0200 @@ -189,7 +189,7 @@ <hr> <div class="refsect2"> <a name="POPPLER-MINOR-VERSION:CAPS"></a><h3>POPPLER_MINOR_VERSION</h3> -<pre class="programlisting">#define POPPLER_MINOR_VERSION (56) +<pre class="programlisting">#define POPPLER_MINOR_VERSION (57) </pre> <p>The major version number of the poppler header files (e.g. in poppler version 0.1.2 this is 1.)</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/glib/reference/version.xml new/poppler-0.57.0/glib/reference/version.xml --- old/poppler-0.56.0/glib/reference/version.xml 2017-06-21 22:37:02.000000000 +0200 +++ new/poppler-0.57.0/glib/reference/version.xml 2017-07-31 23:42:09.000000000 +0200 @@ -1 +1 @@ -0.56.0 +0.57.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/CurlCachedFile.h new/poppler-0.57.0/poppler/CurlCachedFile.h --- old/poppler-0.56.0/poppler/CurlCachedFile.h 2014-02-09 16:10:31.000000000 +0100 +++ new/poppler-0.57.0/poppler/CurlCachedFile.h 2017-07-31 19:35:23.000000000 +0200 @@ -25,8 +25,8 @@ CurlCachedFileLoader(); ~CurlCachedFileLoader(); - size_t init(GooString *url, CachedFile* cachedFile); - int load(const std::vector<ByteRange> &ranges, CachedFileWriter *writer); + size_t init(GooString *url, CachedFile* cachedFile) override; + int load(const std::vector<ByteRange> &ranges, CachedFileWriter *writer) override; private: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/CurlPDFDocBuilder.h new/poppler-0.57.0/poppler/CurlPDFDocBuilder.h --- old/poppler-0.56.0/poppler/CurlPDFDocBuilder.h 2012-12-28 01:17:05.000000000 +0100 +++ new/poppler-0.57.0/poppler/CurlPDFDocBuilder.h 2017-07-31 19:35:23.000000000 +0200 @@ -25,8 +25,8 @@ public: PDFDoc *buildPDFDoc(const GooString &uri, GooString *ownerPassword = NULL, - GooString *userPassword = NULL, void *guiDataA = NULL); - GBool supports(const GooString &uri); + GooString *userPassword = NULL, void *guiDataA = NULL) override; + GBool supports(const GooString &uri) override; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/FlateStream.h new/poppler-0.57.0/poppler/FlateStream.h --- old/poppler-0.56.0/poppler/FlateStream.h 2014-02-09 16:10:32.000000000 +0100 +++ new/poppler-0.57.0/poppler/FlateStream.h 2017-07-31 19:35:23.000000000 +0200 @@ -46,14 +46,14 @@ FlateStream(Stream *strA, int predictor, int columns, int colors, int bits); virtual ~FlateStream(); - virtual StreamKind getKind() { return strFlate; } - virtual void reset(); - virtual int getChar(); - virtual int lookChar(); - virtual int getRawChar(); - virtual void getRawChars(int nChars, int *buffer); - virtual GooString *getPSFilter(int psLevel, const char *indent); - virtual GBool isBinary(GBool last = gTrue); + virtual StreamKind getKind() override { return strFlate; } + virtual void reset() override; + virtual int getChar() override; + virtual int lookChar() override; + virtual int getRawChar() override; + virtual void getRawChars(int nChars, int *buffer) override; + virtual GooString *getPSFilter(int psLevel, const char *indent) override; + virtual GBool isBinary(GBool last = gTrue) override; private: inline int doGetRawChar() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/JPXStream.h new/poppler-0.57.0/poppler/JPXStream.h --- old/poppler-0.56.0/poppler/JPXStream.h 2015-07-05 12:35:57.000000000 +0200 +++ new/poppler-0.57.0/poppler/JPXStream.h 2017-07-31 19:35:23.000000000 +0200 @@ -262,15 +262,15 @@ JPXStream(Stream *strA); virtual ~JPXStream(); - virtual StreamKind getKind() { return strJPX; } - virtual void reset(); - virtual void close(); - virtual int getChar(); - virtual int lookChar(); - virtual GooString *getPSFilter(int psLevel, const char *indent); - virtual GBool isBinary(GBool last = gTrue); + virtual StreamKind getKind() override { return strJPX; } + virtual void reset() override; + virtual void close() override; + virtual int getChar() override; + virtual int lookChar() override; + virtual GooString *getPSFilter(int psLevel, const char *indent) override; + virtual GBool isBinary(GBool last = gTrue) override; virtual void getImageParams(int *bitsPerComponent, - StreamColorSpaceMode *csMode); + StreamColorSpaceMode *csMode) override; private: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/Makefile.am new/poppler-0.57.0/poppler/Makefile.am --- old/poppler-0.56.0/poppler/Makefile.am 2017-03-19 12:45:44.000000000 +0100 +++ new/poppler-0.57.0/poppler/Makefile.am 2017-07-31 23:39:23.000000000 +0200 @@ -327,7 +327,7 @@ $(win32_libs) libpoppler_la_LDFLAGS = \ - -version-info 67:0:0 \ + -version-info 68:0:0 \ @create_shared_lib@ \ @auto_import_flags@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/Makefile.in new/poppler-0.57.0/poppler/Makefile.in --- old/poppler-0.56.0/poppler/Makefile.in 2017-06-21 22:36:53.000000000 +0200 +++ new/poppler-0.57.0/poppler/Makefile.in 2017-07-31 23:41:59.000000000 +0200 @@ -839,7 +839,7 @@ $(win32_libs) libpoppler_la_LDFLAGS = \ - -version-info 67:0:0 \ + -version-info 68:0:0 \ @create_shared_lib@ \ @auto_import_flags@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/PDFDoc.cc new/poppler-0.57.0/poppler/PDFDoc.cc --- old/poppler-0.56.0/poppler/PDFDoc.cc 2017-06-17 18:35:25.000000000 +0200 +++ new/poppler-0.57.0/poppler/PDFDoc.cc 2017-07-02 23:33:21.000000000 +0200 @@ -1127,8 +1127,22 @@ } void PDFDoc::writeDictionnary (Dict* dict, OutStream* outStr, XRef *xRef, Guint numOffset, Guchar *fileKey, - CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen) + CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts) { + bool deleteSet = false; + if (!alreadyWrittenDicts) { + alreadyWrittenDicts = new std::set<Dict*>; + deleteSet = true; + } + + if (alreadyWrittenDicts->find(dict) != alreadyWrittenDicts->end()) { + error(errSyntaxWarning, -1, "PDFDoc::writeDictionnary: Found recursive dicts"); + if (deleteSet) delete alreadyWrittenDicts; + return; + } else { + alreadyWrittenDicts->insert(dict); + } + Object obj1; outStr->printf("<<"); for (int i=0; i<dict->getLength(); i++) { @@ -1136,10 +1150,14 @@ GooString *keyNameToPrint = keyName.sanitizedName(gFalse /* non ps mode */); outStr->printf("/%s ", keyNameToPrint->getCString()); delete keyNameToPrint; - writeObject(dict->getValNF(i, &obj1), outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen); + writeObject(dict->getValNF(i, &obj1), outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts); obj1.free(); } outStr->printf(">> "); + + if (deleteSet) { + delete alreadyWrittenDicts; + } } void PDFDoc::writeStream (Stream* str, OutStream* outStr) @@ -1246,7 +1264,7 @@ } void PDFDoc::writeObject (Object* obj, OutStream* outStr, XRef *xRef, Guint numOffset, Guchar *fileKey, - CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen) + CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts) { Array *array; Object obj1; @@ -1293,7 +1311,7 @@ outStr->printf("] "); break; case objDict: - writeDictionnary (obj->getDict(), outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen); + writeDictionnary (obj->getDict(), outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts); break; case objStream: { @@ -1356,7 +1374,7 @@ } stream->getDict()->remove("DecodeParms"); - writeDictionnary (stream->getDict(),outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen); + writeDictionnary (stream->getDict(),outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts); writeStream (stream,outStr); delete encStream; obj1.free(); @@ -1374,7 +1392,7 @@ } } } - writeDictionnary (stream->getDict(), outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen); + writeDictionnary (stream->getDict(), outStr, xRef, numOffset, fileKey, encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts); writeRawStream (stream, outStr); } break; @@ -1509,7 +1527,7 @@ { uxref->writeTableToFile( outStr, writeAllEntries ); outStr->printf( "trailer\r\n"); - writeDictionnary(trailerDict, outStr, xRef, 0, NULL, cryptRC4, 0, 0, 0); + writeDictionnary(trailerDict, outStr, xRef, 0, NULL, cryptRC4, 0, 0, 0, nullptr); outStr->printf( "\r\nstartxref\r\n"); outStr->printf( "%lli\r\n", uxrefOffset); outStr->printf( "%%%%EOF\r\n"); @@ -1563,26 +1581,44 @@ outStr->printf("%%\xE2\xE3\xCF\xD3\n"); } -void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum) +void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts) { + bool deleteSet = false; + if (!alreadyMarkedDicts) { + alreadyMarkedDicts = new std::set<Dict*>; + deleteSet = true; + } + + if (alreadyMarkedDicts->find(dict) != alreadyMarkedDicts->end()) { + error(errSyntaxWarning, -1, "PDFDoc::markDictionnary: Found recursive dicts"); + if (deleteSet) delete alreadyMarkedDicts; + return; + } else { + alreadyMarkedDicts->insert(dict); + } + Object obj1; for (int i=0; i<dict->getLength(); i++) { const char *key = dict->getKey(i); if (strcmp(key, "Annots") != 0) { - markObject(dict->getValNF(i, &obj1), xRef, countRef, numOffset, oldRefNum, newRefNum); + markObject(dict->getValNF(i, &obj1), xRef, countRef, numOffset, oldRefNum, newRefNum, alreadyMarkedDicts); } else { Object annotsObj; dict->getValNF(i, &annotsObj); if (!annotsObj.isNull()) { - markAnnotations(&annotsObj, xRef, countRef, 0, oldRefNum, newRefNum); + markAnnotations(&annotsObj, xRef, countRef, 0, oldRefNum, newRefNum, alreadyMarkedDicts); annotsObj.free(); } } obj1.free(); } + + if (deleteSet) { + delete alreadyMarkedDicts; + } } -void PDFDoc::markObject (Object* obj, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum) +void PDFDoc::markObject (Object* obj, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts) { Array *array; Object obj1; @@ -1596,12 +1632,12 @@ } break; case objDict: - markDictionnary (obj->getDict(), xRef, countRef, numOffset, oldRefNum, newRefNum); + markDictionnary (obj->getDict(), xRef, countRef, numOffset, oldRefNum, newRefNum, alreadyMarkedDicts); break; case objStream: { Stream *stream = obj->getStream(); - markDictionnary (stream->getDict(), xRef, countRef, numOffset, oldRefNum, newRefNum); + markDictionnary (stream->getDict(), xRef, countRef, numOffset, oldRefNum, newRefNum, alreadyMarkedDicts); } break; case objRef: @@ -1695,7 +1731,7 @@ page.free(); } -void PDFDoc::markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum) +void PDFDoc::markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts) { pageDict->remove("OpenAction"); pageDict->remove("Outlines"); @@ -1710,13 +1746,13 @@ strcmp(key, "Annots") != 0 && strcmp(key, "P") != 0 && strcmp(key, "Root") != 0) { - markObject(&value, xRef, countRef, numOffset, oldRefNum, newRefNum); + markObject(&value, xRef, countRef, numOffset, oldRefNum, newRefNum, alreadyMarkedDicts); } value.free(); } } -GBool PDFDoc::markAnnotations(Object *annotsObj, XRef *xRef, XRef *countRef, Guint numOffset, int oldPageNum, int newPageNum) { +GBool PDFDoc::markAnnotations(Object *annotsObj, XRef *xRef, XRef *countRef, Guint numOffset, int oldPageNum, int newPageNum, std::set<Dict*> *alreadyMarkedDicts) { Object annots; GBool modified = gFalse; annotsObj->fetch(getXRef(), &annots); @@ -1775,7 +1811,7 @@ obj2.free(); } type.free(); - markPageObjects(dict, xRef, countRef, numOffset, oldPageNum, newPageNum); + markPageObjects(dict, xRef, countRef, numOffset, oldPageNum, newPageNum, alreadyMarkedDicts); } obj1.free(); array->getNF(i, &obj1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/PDFDoc.h new/poppler-0.57.0/poppler/PDFDoc.h --- old/poppler-0.56.0/poppler/PDFDoc.h 2017-06-17 18:35:25.000000000 +0200 +++ new/poppler-0.57.0/poppler/PDFDoc.h 2017-07-03 22:44:30.000000000 +0200 @@ -14,7 +14,7 @@ // under GPL version 2 or later // // Copyright (C) 2005, 2006, 2008 Brad Hards <br...@frogmouth.net> -// Copyright (C) 2005, 2009, 2014, 2015 Albert Astals Cid <aa...@kde.org> +// Copyright (C) 2005, 2009, 2014, 2015, 2017 Albert Astals Cid <aa...@kde.org> // Copyright (C) 2008 Julien Rebetez <juli...@svn.gnome.org> // Copyright (C) 2008 Pino Toscano <p...@kde.org> // Copyright (C) 2008 Carlos Garcia Campos <carlo...@gnome.org> @@ -292,13 +292,13 @@ // rewrite pageDict with MediaBox, CropBox and new page CTM void replacePageDict(int pageNo, int rotate, PDFRectangle *mediaBox, PDFRectangle *cropBox); - void markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum); - GBool markAnnotations(Object *annots, XRef *xRef, XRef *countRef, Guint numOffset, int oldPageNum, int newPageNum); + void markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts = nullptr); + GBool markAnnotations(Object *annots, XRef *xRef, XRef *countRef, Guint numOffset, int oldPageNum, int newPageNum, std::set<Dict*> *alreadyMarkedDicts = nullptr); void markAcroForm(Object *acrpForm, XRef *xRef, XRef *countRef, Guint numOffset, int oldPageNum, int newPageNum); // write all objects used by pageDict to outStr Guint writePageObjects(OutStream *outStr, XRef *xRef, Guint numOffset, GBool combine = gFalse); static void writeObject (Object *obj, OutStream* outStr, XRef *xref, Guint numOffset, Guchar *fileKey, - CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen); + CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts = nullptr); static void writeHeader(OutStream *outStr, int major, int minor); // Ownership goes to the caller @@ -311,21 +311,18 @@ private: // insert referenced objects in XRef - void markDictionnary (Dict* dict, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum); - void markObject (Object *obj, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum); + void markDictionnary (Dict* dict, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts); + void markObject (Object *obj, XRef *xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts = nullptr); static void writeDictionnary (Dict* dict, OutStream* outStr, XRef *xRef, Guint numOffset, Guchar *fileKey, - CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen); + CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts); // Write object header to current file stream and return its offset static Goffset writeObjectHeader (Ref *ref, OutStream* outStr); static void writeObjectFooter (OutStream* outStr); void writeObject (Object *obj, OutStream* outStr, Guchar *fileKey, CryptAlgorithm encAlgorithm, - int keyLength, int objNum, int objGen) - { writeObject(obj, outStr, getXRef(), 0, fileKey, encAlgorithm, keyLength, objNum, objGen); } - void writeDictionnary (Dict* dict, OutStream* outStr, Guchar *fileKey, CryptAlgorithm encAlgorithm, - int keyLength, int objNum, int objGen) - { writeDictionnary(dict, outStr, getXRef(), 0, fileKey, encAlgorithm, keyLength, objNum, objGen); } + int keyLength, int objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts = nullptr) + { writeObject(obj, outStr, getXRef(), 0, fileKey, encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts); } static void writeStream (Stream* str, OutStream* outStr); static void writeRawStream (Stream* str, OutStream* outStr); void writeXRefTableTrailer (Goffset uxrefOffset, XRef *uxref, GBool writeAllEntries, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/PSOutputDev.cc new/poppler-0.57.0/poppler/PSOutputDev.cc --- old/poppler-0.56.0/poppler/PSOutputDev.cc 2017-06-17 18:35:25.000000000 +0200 +++ new/poppler-0.57.0/poppler/PSOutputDev.cc 2017-07-31 19:51:00.000000000 +0200 @@ -3284,10 +3284,10 @@ int nStripes, stripeH, stripeY; int c, w, h, x, y, comp, i; int numComps, initialNumComps; -#endif char hexBuf[32*2 + 2]; // 32 values X 2 chars/value + line ending + null Guchar digit; GBool isGray; +#endif if (!postInitDone) { postInit(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/Stream.cc new/poppler-0.57.0/poppler/Stream.cc --- old/poppler-0.56.0/poppler/Stream.cc 2017-06-21 22:31:20.000000000 +0200 +++ new/poppler-0.57.0/poppler/Stream.cc 2017-07-31 19:52:50.000000000 +0200 @@ -221,7 +221,6 @@ int encoding; GBool endOfLine, byteAlign, endOfBlock, black; int columns, rows; - int colorXform; Object globals, obj; if (!strcmp(name, "ASCIIHexDecode") || !strcmp(name, "AHx")) { @@ -307,14 +306,14 @@ str = new CCITTFaxStream(str, encoding, endOfLine, byteAlign, columns, rows, endOfBlock, black); } else if (!strcmp(name, "DCTDecode") || !strcmp(name, "DCT")) { - colorXform = -1; +#if HAVE_DCT_DECODER + int colorXform = -1; if (params->isDict()) { if (params->dictLookup("ColorTransform", &obj, recursion)->isInt()) { colorXform = obj.getInt(); } obj.free(); } -#ifdef HAVE_DCT_DECODER str = new DCTStream(str, colorXform, dict, recursion); #else error(errSyntaxError, getPos(), "Unknown filter '{0:s}'", name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/Stream.h new/poppler-0.57.0/poppler/Stream.h --- old/poppler-0.56.0/poppler/Stream.h 2017-06-17 18:35:25.000000000 +0200 +++ new/poppler-0.57.0/poppler/Stream.h 2017-07-31 19:35:23.000000000 +0200 @@ -870,15 +870,15 @@ DCTStream(Stream *strA, int colorXformA, Object *dict, int recursion); virtual ~DCTStream(); - virtual StreamKind getKind() { return strDCT; } - virtual void reset(); - virtual void close(); - virtual int getChar(); - virtual int lookChar(); - virtual GooString *getPSFilter(int psLevel, const char *indent); - virtual GBool isBinary(GBool last = gTrue); + StreamKind getKind() override { return strDCT; } + void reset() override; + void close() override; + int getChar() override; + int lookChar() override; + GooString *getPSFilter(int psLevel, const char *indent) override; + GBool isBinary(GBool last = gTrue) override; - virtual void unfilteredReset(); + void unfilteredReset() override; private: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/poppler/StructTreeRoot.cc new/poppler-0.57.0/poppler/StructTreeRoot.cc --- old/poppler-0.56.0/poppler/StructTreeRoot.cc 2017-06-17 18:35:25.000000000 +0200 +++ new/poppler-0.57.0/poppler/StructTreeRoot.cc 2017-07-31 23:34:52.000000000 +0200 @@ -6,6 +6,7 @@ // // Copyright 2013, 2014 Igalia S.L. // Copyright 2014 Fabio D'Urso <fabiodu...@hotmail.it> +// Copyright 2017 Jan-Erik S <janerik234...@gmail.com> // //======================================================================== @@ -67,13 +68,13 @@ index.free(); continue; } - if (index.getInt() < 0) { - error(errSyntaxError, -1, "Nums item at position {0:d} is invalid value ({1:d})", i, index.getInt()); + const unsigned idx = index.getInt(); + if (idx < 0 || idx >= parentTree.size()) { + error(errSyntaxError, -1, "Nums item at position {0:d} is invalid value ({1:d}): [0..{2:d}]", i, idx, parentTree.size() - 1); index.free(); continue; } - const unsigned idx = index.getInt(); if (nums.arrayGetNF(i + 1, &value)->isRef()) { parentTree[idx].resize(1); parentTree[idx][0].ref = value.getRef(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/utils/HtmlFonts.cc new/poppler-0.57.0/utils/HtmlFonts.cc --- old/poppler-0.56.0/utils/HtmlFonts.cc 2017-06-21 22:31:18.000000000 +0200 +++ new/poppler-0.57.0/utils/HtmlFonts.cc 2017-07-31 19:35:23.000000000 +0200 @@ -26,6 +26,7 @@ // Copyright (C) 2012 Igor Slepchin <igor.slepc...@gmail.com> // Copyright (C) 2012 Luis Parravicini <lparr...@gmail.com> // Copyright (C) 2013 Julien Nabet <serval2...@yahoo.fr> +// Copyright (C) 2017 Jason Crain <ja...@inspiresomeone.us> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -252,6 +253,11 @@ } for (int i = 0; i < uLen; ++i) { + // skip control characters. W3C disallows them and they cause a warning + // with PHP. + if (u[i] <= 31) + continue; + switch (u[i]) { case '"': tmp->append("""); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/utils/HtmlOutputDev.cc new/poppler-0.57.0/utils/HtmlOutputDev.cc --- old/poppler-0.56.0/utils/HtmlOutputDev.cc 2017-03-06 22:33:01.000000000 +0100 +++ new/poppler-0.57.0/utils/HtmlOutputDev.cc 2017-07-31 19:35:23.000000000 +0200 @@ -39,6 +39,7 @@ // Copyright (C) 2013 Johannes Brandstätter <jbrandstaet...@gmail.com> // Copyright (C) 2014 Fabio D'Urso <fabiodu...@hotmail.it> // Copyright (C) 2016 Vincent Le Garrec <legarrec.vinc...@gmail.com> +// Copyright (C) 2017 Caolán McNamara <caol...@redhat.com> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -1433,8 +1434,9 @@ int invert_bits = 0xff; if (colorMap) { GfxGray gray; - Guchar zero = 0; - colorMap->getGray(&zero, &gray); + Guchar zero[gfxColorMaxComps]; + memset(zero, 0, sizeof(zero)); + colorMap->getGray(zero, &gray); if (colToByte(gray) == 0) invert_bits = 0x00; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/utils/ImageOutputDev.cc new/poppler-0.57.0/utils/ImageOutputDev.cc --- old/poppler-0.56.0/utils/ImageOutputDev.cc 2017-05-04 18:33:44.000000000 +0200 +++ new/poppler-0.57.0/utils/ImageOutputDev.cc 2017-07-31 19:35:23.000000000 +0200 @@ -23,6 +23,7 @@ // Copyright (C) 2012, 2013, 2017 Adrian Johnson <ajohn...@redneon.com> // Copyright (C) 2013 Thomas Fischer <fisc...@unix-ag.uni-kl.de> // Copyright (C) 2013 Hib Eris <h...@hiberis.nl> +// Copyright (C) 2017 Caolán McNamara <caol...@redhat.com> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -344,7 +345,7 @@ GfxRGB rgb; GfxCMYK cmyk; GfxGray gray; - Guchar zero = 0; + Guchar zero[gfxColorMaxComps]; int invert_bits; if (writer) { @@ -383,7 +384,8 @@ // the mask we leave the data unchanged. invert_bits = 0xff; if (colorMap) { - colorMap->getGray(&zero, &gray); + memset(zero, 0, sizeof(zero)); + colorMap->getGray(zero, &gray); if (colToByte(gray) == 0) invert_bits = 0x00; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/utils/pdfseparate.1 new/poppler-0.57.0/utils/pdfseparate.1 --- old/poppler-0.56.0/utils/pdfseparate.1 2017-01-16 22:37:01.000000000 +0100 +++ new/poppler-0.57.0/utils/pdfseparate.1 2017-07-31 19:37:45.000000000 +0200 @@ -13,10 +13,11 @@ pdfseparate reads the PDF file .IR PDF-file , extracts one or more pages, and writes one PDF file for each page to -.IR PDF-page-pattern , +.IR PDF-page-pattern. +.PP PDF-page-pattern should contain -.BR %d . -%d is replaced by the page number. +.BR %d +(or any variant respecting printf format), since %d is replaced by the page number. .TP The PDF-file should not be encrypted. .SH OPTIONS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.56.0/utils/pdfseparate.cc new/poppler-0.57.0/utils/pdfseparate.cc --- old/poppler-0.56.0/utils/pdfseparate.cc 2017-01-16 22:37:01.000000000 +0100 +++ new/poppler-0.57.0/utils/pdfseparate.cc 2017-07-31 19:45:29.000000000 +0200 @@ -9,6 +9,7 @@ // Copyright (C) 2013, 2016 Pino Toscano <p...@kde.org> // Copyright (C) 2013 Daniel Kahn Gillmor <d...@fifthhorseman.net> // Copyright (C) 2013 Suzuki Toshiya <mpsuz...@hiroshima-u.ac.jp> +// Copyright (C) 2017 Léonard Michelet <leonard.miche...@smile.fr> // //======================================================================== #include "config.h" @@ -97,7 +98,7 @@ } } if (!foundmatch && firstPage != lastPage) { - error(errSyntaxError, -1, "'{0:s}' must contain '%d' if more than one page should be extracted", destFileName); + error(errSyntaxError, -1, "'{0:s}' must contain '%d' (or any variant respecting printf format) if more than one page should be extracted, in order to print the page number", destFileName); free(auxDestFileName); delete doc; return false;