commit 87963f675f3532073c1d71c7ba298289485bc7f7
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Jan 2 22:40:38 2024 +0100

    poppler 24.01.0

 CMakeLists.txt   | 4 ++--
 NEWS             | 7 +++++++
 cpp/Doxyfile     | 2 +-
 qt5/src/Doxyfile | 2 +-
 qt6/src/Doxyfile | 2 +-
 5 files changed, 12 insertions(+), 5 deletions(-)

commit 38b471d3796efd4a7a01c5a31c1e40606f355213
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Jan 2 22:36:39 2024 +0100

    Welcome 2024

 poppler/poppler-config.h.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f1c69969e031687e6d991677dda021a2a4db48e3
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Dec 29 17:29:56 2023 +0100

    Fix infinite loop in HorizontalTextLayouter if there's not enough
    space to layout text #2

    Happens only if the first chracter we're asking to draw can't be drawn
    with the given font and we need to find a new one and the given
    available space is negative (as said this function must always
    layout at
    least one character)

 poppler/Annot.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8a9f1d3a84a9f3d66cd353b7fe1aef0b65a37c08
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Dec 28 18:35:21 2023 +0100

    Fix infinite loop in HorizontalTextLayouter if there's not enough
    space to layout text

    Happens only if the first chracter we're asking to draw can't be drawn
    with the given font and we need to find a new one

 poppler/Annot.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4be9ecdadcacf52dc0e413c30d09a61384a36166
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Dec 23 01:00:02 2023 +0100

    Update (C)

 poppler/FontInfo.cc | 1 +
 1 file changed, 1 insertion(+)

commit 4fb6a9bc495fa7059e7eed8adb5d46bed44809be
Author: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Date:   Fri Dec 8 17:16:38 2023 +0900

    Initialize FontInfo::embRef by Ref::INVALID() for Type3 font.

 poppler/FontInfo.cc | 1 +
 1 file changed, 1 insertion(+)

commit afaddf1be66aed2931a146bb6555225c82cceacd
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Dec 14 00:48:45 2023 +0100

    NSSCryptoSignBackend: Don't crash on certain documents

 poppler/NSSCryptoSignBackend.cc | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit 37023cdfc15600cd58303147dc99254c119c51c4
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Dec 13 23:08:44 2023 +0100

    Update (C)

 poppler/JPEG2000Stream.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6fa6d41d046e440165e899a84a38da2c1ec146ed
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Dec 10 23:44:42 2023 +0100

    CI: Add android generic build

 .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit cf9210568ebd45de13e2f225090df1c9bdfa8248
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Dec 10 23:49:15 2023 +0100

    Fix build on Android with generic font configuration

 poppler/GlobalParams.cc | 2 ++
 1 file changed, 2 insertions(+)

commit 3d870122d70c3b3327d93eb761eb14003cc745a7
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Dec 10 22:40:58 2023 +0100

    We require an openjpeg >= 2.1

 poppler/JPEG2000Stream.cc | 15 ---------------
 1 file changed, 15 deletions(-)

commit 4634bfdaeb46bb981413f247b1cfe82674a5f113
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Dec 9 01:17:21 2023 +0100

    CI: Fix build_clang16_libcpp

 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6748cfc84ffef2bfa2328f1da7c70a99d93e0807
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Dec 1 10:31:59 2023 +0100

    poppler 23.12.0

 CMakeLists.txt   | 2 +-
 NEWS             | 5 +++++
 cpp/Doxyfile     | 2 +-
 qt5/src/Doxyfile | 2 +-
 qt6/src/Doxyfile | 2 +-
 5 files changed, 9 insertions(+), 4 deletions(-)

commit 84b359b82ee5b10ae714a0fbf3fda53f73e88722
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Sep 28 00:27:54 2023 +0200

    Rewrite FoFiType1::parse to be more flexible

    Previous code needed Encoding to be at the start of it's own line

    The file at issue #1422 doesn't have that and most of the other
    renderers show it correctly so we should do the same.

    Also the code should be easier to understand now, and probably
    faster since we're not copying string around like before

 fofi/FoFiType1.cc  | 295
 ++++++++++++++++++++---------------------------------
 fofi/FoFiType1.h   |  12 +--
 poppler/GfxFont.cc |   9 +-
 3 files changed, 120 insertions(+), 196 deletions(-)

commit 0c53de52deb1328d4d45ab3dfc742acb6386a369
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Nov 9 23:56:12 2023 +0100

    Update (C)

 poppler/Object.h  | 1 +
 utils/pdfunite.cc | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 73c7458073429371ef3a9ed4f7edd6060d1f822d
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Fri Nov 3 09:04:58 2023 +0100

    Lexer: Allocate strings on the stack, not on the heap

    Makes the code easier to read, and possibly even a bit faster, too.

 poppler/Lexer.cc | 60
 +++++++++++++++++++++-----------------------------------
 1 file changed, 22 insertions(+), 38 deletions(-)

commit 6d37f787abc05a658d342d42995c5df167c5e5b9
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Fri Nov 3 15:30:15 2023 +0100

    Object: Add constructor from r-value std::string

    This can simplify the calling code when the string to use
    is stack-allocated.

    Unfortunately, the new constructor has to do a heap allocation
    internally, because Object stores a pointer to a string,
    not a string value.

    With the new constructor, construction of Object objects from
    std::initializer_list is now ambiguous. This leads to compiler
    errors in a few places where {num, gen} is used to initialize
    an Object with a Ref object.  The patch replaces this construction
    by Ref{num, gen}, which fixes the problem.

 poppler/Object.h               | 5 +++++
 qt5/tests/check_optcontent.cpp | 4 ++--
 qt6/tests/check_optcontent.cpp | 4 ++--
 utils/pdfunite.cc              | 8 ++++----
 4 files changed, 13 insertions(+), 8 deletions(-)

commit 975d6998b0ad979e81ea133be493bbf7be113fc7
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Nov 1 22:47:06 2023 +0100

    poppler 23.11.0

 CMakeLists.txt   |  4 ++--
 NEWS             | 10 ++++++++++
 cpp/Doxyfile     |  2 +-
 qt5/src/Doxyfile |  2 +-
 qt6/src/Doxyfile |  2 +-
 5 files changed, 15 insertions(+), 5 deletions(-)

commit 3caa03d36f78ddeac1a8571a2e789afdfb5f154d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Oct 22 17:13:38 2023 +0200

    Update (C)

 poppler/CairoOutputDev.cc | 1 +
 1 file changed, 1 insertion(+)

commit 4e86f71b98c45bae7b2304eca630cf2ae24c216d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Oct 22 17:11:01 2023 +0200

    Simple GooString -> std::string change

 poppler/Annot.cc | 2 +-
 poppler/Annot.h  | 4 ++--
 poppler/Form.cc  | 2 +-
 poppler/Form.h   | 2 +-
 poppler/Link.cc  | 6 +++---
 poppler/Link.h   | 4 ++--
 6 files changed, 10 insertions(+), 10 deletions(-)

commit 9e174595d0e891188275420cf045ddf423a1ecbc
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Oct 11 18:23:07 2023 +0200

    Fix crash on broken files

    Bug #1441

 poppler/CairoOutputDev.cc | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

commit f0adfa56e54480f6e41baa89eb6e9b931d6a8359
Author: Anton Thomasson <antonthomasson@gmail.com>
Date:   Sun Sep 24 21:47:16 2023 +0200

    Use internal downscaling algorithm if image exceeds Cairo's maximum
    dimensions.

 poppler/CairoOutputDev.cc | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

commit 4d45d3304a94bc70d5f8a74dcc30b24dc7e54a45
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Oct 22 16:47:57 2023 +0200

    Use RefRecursionChecker instead std::set

    Much simpler code

 poppler/Catalog.cc | 26 +++++++++-----------------
 poppler/Catalog.h  |  4 ++--
 2 files changed, 11 insertions(+), 19 deletions(-)

commit c45800a26a1c7c511cb088b2078c7beff3701f63
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Oct 18 01:17:33 2023 +0200

    Update (C)

 goo/GooString.cc | 2 +-
 poppler/PDFDoc.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 611a0cc0f0a4a866a84dcbd4870d30a9b2566365
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Sun Oct 15 18:22:12 2023 +0200

    Remove method GooString::hasJustUnicodeMarker

    Because it is used only once, and writing "== unicodeByteOrderMark"
    instead is just as short and readable.

 goo/GooString.h   | 3 +--
 poppler/PDFDoc.cc | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

commit 28e70bc0fafe1499b107d5965f1e8c7a59b4c4a5
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Sun Oct 15 20:54:16 2023 +0200

    Move the method sanitizedName from GooString to PDFDoc

    Because it is only used by the PDFDoc class, and it does not seem
    to be generic enough for a GooString method.

    Also, this patch modifies the method to return the string as a
    std::string object by value, rather than as a pointer to a
    heap-allocated GooString object.  This saves one heap allocation.

 goo/GooString.cc  | 17 -----------------
 goo/GooString.h   |  5 -----
 poppler/PDFDoc.cc | 25 +++++++++++++++++++------
 poppler/PDFDoc.h  |  5 +++++
 4 files changed, 24 insertions(+), 28 deletions(-)

commit c89b933f3bd235c6f95b420fdcfe5ca7df900c09
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Oct 14 00:27:15 2023 +0200

    Update (C)

 poppler/Annot.h                   | 2 +-
 poppler/Gfx.cc                    | 2 +-
 poppler/MarkedContentOutputDev.cc | 2 +-
 poppler/MarkedContentOutputDev.h  | 2 +-
 poppler/OutputDev.h               | 2 +-
 poppler/Page.cc                   | 2 +-
 poppler/Page.h                    | 2 +-
 poppler/StructElement.cc          | 2 +-
 poppler/StructElement.h           | 2 +-
 poppler/UTF.cc                    | 2 +-
 poppler/UTF.h                     | 2 +-
 utils/pdftocairo.cc               | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

commit 760242166a8dacff674b2039ba27d823f0c27bac
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Thu Oct 12 22:21:33 2023 +0000

    pdftocairo: EPS output should not contain %%PageOrientation

 utils/pdftocairo.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b4052d02b44e8e412316a8dca1a99f9714e5aa8e
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Oct 2 12:25:22 2023 +1030

    cairo: write document logical structure if output is pdf

    Cairo 1.18 can create a tagged pdf. Add support to CairoOutputDev to
    copy the logical structure from the input pdf if available.

    Added setLogicalStructure() to enable.

    Added -struct option to pdftocairo to enable.

 poppler/Annot.h                   |   2 +-
 poppler/CairoOutputDev.cc         | 472
 +++++++++++++++++++++++++++++++++++++-
 poppler/CairoOutputDev.h          |  50 ++++
 poppler/Gfx.cc                    |   4 +-
 poppler/MarkedContentOutputDev.cc |   4 +-
 poppler/MarkedContentOutputDev.h  |   4 +-
 poppler/OutputDev.h               |   4 +-
 poppler/Page.cc                   |   9 +
 poppler/Page.h                    |   5 +
 poppler/StructElement.cc          |   9 +
 poppler/StructElement.h           |   5 +-
 poppler/UTF.cc                    |  32 +++
 poppler/UTF.h                     |   5 +
 utils/pdftocairo.1                |   4 +
 utils/pdftocairo.cc               |  46 +++-
 15 files changed, 635 insertions(+), 20 deletions(-)

commit 48914b5d5fc12ae96d4f3ac3fc9c6fd08a1d6496
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Oct 2 21:39:58 2023 +0200

    poppler 23.10.0

 CMakeLists.txt   |  4 ++--
 NEWS             | 10 ++++++++++
 cpp/Doxyfile     |  2 +-
 qt5/src/Doxyfile |  2 +-
 qt6/src/Doxyfile |  2 +-
 5 files changed, 15 insertions(+), 5 deletions(-)

commit a678acd1224e40140980ec05b117e3fcded36246
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Fri Sep 29 13:49:03 2023 +0200

    Check if linker supports version scripts

    This is at least not fully supported on solaris.

 CMakeLists.txt | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

commit 6789f6fb2774940c2b60d71850826f0dad988167
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Sep 28 00:57:00 2023 +0200

    CI: Use fedora 39

 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0832cb20ebb224aed388ab3d6ff90e5e2cbe394e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Sep 28 00:42:05 2023 +0200

    CI: Use clang 16

 .gitlab-ci.yml | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit c673208da4144429f2e43b4ad47c349ebda38691
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Sep 27 19:09:02 2023 +0200

    FoFiType1::parse: Also keep parsing if !gotMatrix

    We probably forgot to add it in
    876021b1aa16ad38767a91e1be31c392f368fde2

 fofi/FoFiType1.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bbf225296bcb698713fda0d144e9d86ea2e28c55
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 26 22:55:30 2023 +0200

    Use RefRecursionChecker in StructElement

 poppler/StructElement.cc  | 11 +++++------
 poppler/StructElement.h   |  8 ++++----
 poppler/StructTreeRoot.cc |  6 +++---
 3 files changed, 12 insertions(+), 13 deletions(-)

commit 1f8500587a5970879ddc282d0ae041991db6e6a6
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Sep 25 17:34:12 2023 +0200

    CI: Add android Qt6 CI

 .gitlab-ci.yml | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit a28fdcb8c7247d3b84363e0f5de82e493a50b185
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Sep 25 18:37:13 2023 +0200

    Update (C)

 splash/Splash.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d0440bf2b525dcb3372802a5b5b621a3e2d5be6e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Sep 25 18:07:34 2023 +0200

    Use zu for printf + size_t

 splash/Splash.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 991470945f8f09b4a675e45df1223110eac1a9d8
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Mon Sep 25 10:27:10 2023 +0000

    cairo: update type 3 fonts for cairo 1.18 api

 poppler/CairoFontEngine.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 60dc1dd072565f0999519ead607f2b4e93feb8b5
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Sep 25 11:38:16 2023 +0200

    CI: -DENABLE_GPGME=OFF for glib_docs

 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8646a6aa2cb60644b56dc6e6e3b3af30ba920245
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Aug 15 23:44:59 2023 +0200

    Make a few more dependencies soft-mandatory

    they can be disabled via cmake option

 .gitlab-ci.yml | 16 +++++++----
 CMakeLists.txt | 86
 ++++++++++++++++++++++++++--------------------------------
 2 files changed, 49 insertions(+), 53 deletions(-)

commit 49cc0c4ccbc7776454cd5c7dd4136f52e3d545c8
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Sep 20 22:25:35 2023 +0200

    Update (C)

 poppler/Annot.cc         | 2 +-
 poppler/FontInfo.cc      | 2 +-
 poppler/FontInfo.h       | 2 +-
 poppler/Object.h         | 2 +-
 poppler/PageLabelInfo.cc | 2 +-
 poppler/PageLabelInfo.h  | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

commit e899dc75eb692f7496b9b4d683916c3626eadc02
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Sep 20 22:20:55 2023 +0200

    FontInfoScanner::scanFonts: Fix infinite recursion on broken files

 poppler/FontInfo.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 8ba682b1a5d53efe975849a260e78715da74263c
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Sep 20 22:20:13 2023 +0200

    Introduce RefRecursionChecker

 poppler/Annot.cc         | 17 +++--------------
 poppler/FontInfo.cc      | 15 +++++----------
 poppler/FontInfo.h       |  2 +-
 poppler/Object.h         | 22 ++++++++++++++++++++++
 poppler/PageLabelInfo.cc | 14 +++++---------
 poppler/PageLabelInfo.h  |  2 +-
 6 files changed, 37 insertions(+), 35 deletions(-)

commit 77573e1a706f861ca4677ea36dbdcc0a9fb50a99
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Sep 20 00:32:15 2023 +0200

    Fix DCTStream getting stuck in some broken files

    Fixes #1430

 poppler/DCTStream.cc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit e6be3e11ada80291d5f9aa74dbe1604ff20c7cd1
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Sep 18 23:41:53 2023 +0200

    Update (C)

 poppler/XRef.cc | 1 +
 1 file changed, 1 insertion(+)

commit 6591a88c05285a7678dd8e7299d064f052096665
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 12 23:08:51 2023 +0200

    PDFDoc::savePageAs: Use more unique_ptr

 poppler/PDFDoc.cc | 65
 ++++++++++++++++++++++---------------------------------
 1 file changed, 26 insertions(+), 39 deletions(-)

commit d37735a209da2b8b62e18afc7ab0f7db8a28f965
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Fri Sep 8 17:36:29 2023 +0200

    XRef::reserve(): fix use-after-free and integer overflow on large
    XRref /Size

    This fixes two issues:

    - when using greallocn(), and the reallocation failed, the previous
      'entries' array was unexpectedly freed, causing later use-after-free

    ```
    $ (ulimit -v 1000000; valgrind ./utils/pdftoppm -png test.pdf)
    Out of memory
    ==1251090== Invalid read of size 4
    ==1251090==    at 0x49F685B: Object::free() (poppler/Object.cc:115)
    ==1251090==    by 0x4A339BB: ~Object (poppler/Object.h:171)
    ==1251090==    by 0x4A339BB: XRef::resize(int) (poppler/XRef.cc:459)
    ==1251090==    by 0x4A32E20: XRef::constructXRef(bool*, bool)
    (poppler/XRef.cc:877)
    ==1251090==    by 0x4A32CD4: XRef::XRef(BaseStream*, long
    long, long long, bool*, bool, std::function<void ()> const&)
    (poppler/XRef.cc:318)
    ==1251090==    by 0x4A00531: PDFDoc::setup(std::optional<GooString>
    const&, std::optional<GooString> const&, std::function<void ()>
    const&) (poppler/PDFDoc.cc:247)
    ==1251090==    by 0x4A002DB: PDFDoc::PDFDoc(std::unique_ptr<GooString,
    std::default_delete<GooString> >&&, std::optional<GooString> const&,
    std::optional<GooString> const&, void*, std::function<void ()> const&)
    (poppler/PDFDoc.cc:161)
    ==1251090==    by 0x49F49EA: LocalPDFDocBuilder::buildPDFDoc(GooString
    const&, std::optional<GooString> const&, std::optional<GooString>
    const&, void*) (poppler/LocalPDFDocBuilder.cc:0)
    ==1251090==    by 0x4A1B1E5: PDFDocFactory::createPDFDoc(GooString
    const&, std::optional<GooString> const&, std::optional<GooString>
    const&, void*) (poppler/PDFDocFactory.cc:62)
    ==1251090==    by 0x4035CA: main (utils/pdftoppm.cc:503)
    ==1251090==  Address 0x6698648 is 24 bytes inside a block of size
    40,960 free'd
    ==1251090==    at 0x483CA3F: free (in
    /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==1251090==    by 0x4927B1C: greallocn(void*, int, int, bool, bool)
    (goo/gmem.h:0)
    ==1251090==    by 0x4A33A13: greallocn_checkoverflow (goo/gmem.h:185)
    ==1251090==    by 0x4A33A13: reserve (poppler/XRef.cc:430)
    ==1251090==    by 0x4A33A13: XRef::resize(int) (poppler/XRef.cc:446)
    ==1251090==    by 0x4A32CB5: XRef::XRef(BaseStream*, long
    long, long long, bool*, bool, std::function<void ()> const&)
    (poppler/XRef.cc:317)
    ==1251090==    by 0x4A00531: PDFDoc::setup(std::optional<GooString>
    const&, std::optional<GooString> const&, std::function<void ()>
    const&) (poppler/PDFDoc.cc:247)
    ==1251090==    by 0x4A002DB: PDFDoc::PDFDoc(std::unique_ptr<GooString,
    std::default_delete<GooString> >&&, std::optional<GooString> const&,
    std::optional<GooString> const&, void*, std::function<void ()> const&)
    (poppler/PDFDoc.cc:161)
    ==1251090==    by 0x49F49EA: LocalPDFDocBuilder::buildPDFDoc(GooString
    const&, std::optional<GooString> const&, std::optional<GooString>
    const&, void*) (poppler/LocalPDFDocBuilder.cc:0)
    ==1251090==    by 0x4A1B1E5: PDFDocFactory::createPDFDoc(GooString
    const&, std::optional<GooString> const&, std::optional<GooString>
    const&, void*) (poppler/PDFDocFactory.cc:62)
    ==1251090==    by 0x4035CA: main (utils/pdftoppm.cc:503)
    ==1251090==  Block was alloc'd at
    ==1251090==    at 0x483B7F3: malloc (in
    /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==1251090==    by 0x4927ACD: grealloc (goo/gmem.h:77)
    ==1251090==    by 0x4927ACD: greallocn(void*, int, int, bool, bool)
    (goo/gmem.h:174)
    ==1251090==    by 0x4A33A13: greallocn_checkoverflow (goo/gmem.h:185)
    ==1251090==    by 0x4A33A13: reserve (poppler/XRef.cc:430)
    ==1251090==    by 0x4A33A13: XRef::resize(int) (poppler/XRef.cc:446)
    ==1251090==    by 0x4A3344E: XRef::constructXRef(bool*, bool)
    (poppler/XRef.cc:979)
    ==1251090==    by 0x4A32BF9: XRef::XRef(BaseStream*, long
    long, long long, bool*, bool, std::function<void ()> const&)
    (poppler/XRef.cc:304)
    ==1251090==    by 0x4A00531: PDFDoc::setup(std::optional<GooString>
    const&, std::optional<GooString> const&, std::function<void ()>
    const&) (poppler/PDFDoc.cc:247)
    ==1251090==    by 0x4A002DB: PDFDoc::PDFDoc(std::unique_ptr<GooString,
    std::default_delete<GooString> >&&, std::optional<GooString> const&,
    std::optional<GooString> const&, void*, std::function<void ()> const&)
    (poppler/PDFDoc.cc:161)
    ==1251090==    by 0x49F49EA: LocalPDFDocBuilder::buildPDFDoc(GooString
    const&, std::optional<GooString> const&, std::optional<GooString>
    const&, void*) (poppler/LocalPDFDocBuilder.cc:0)
    ==1251090==    by 0x4A1B1E5: PDFDocFactory::createPDFDoc(GooString
    const&, std::optional<GooString> const&, std::optional<GooString>
    const&, void*) (poppler/PDFDocFactory.cc:62)
    ==1251090==    by 0x4035CA: main (utils/pdftoppm.cc:503)
    ```

    - the logic to exponentially resize the capacity of the array was
      relying on undefined behaviour of overflow of int. Change that to
      explictely test the value of the capacity before multiplying by 2.

 poppler/XRef.cc | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

commit c44c25ea36a0bf33b6ba46d16ab922dcc13f591e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Sep 11 23:37:06 2023 +0200

    PDFDoc::savePageAs: Return cleanly if page is not a dict

 poppler/PDFDoc.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 1223c1eb42c62d1587d929b8c72ad8513f0e4b7d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 12 22:45:48 2023 +0200

    CI: unbreak mingw

 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cc2fd7c39f1fddd233336099c031bff6bc0d9828
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Sep 7 16:06:40 2023 +0200

    More supported gnupg releases

    The upcoming 2.2.42 version will have the bugfixes backported for pdf
    signatures to work.

 poppler/GPGMECryptoSignBackend.cc | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 3f2e643c4e1c4295c7521681216a90bb02518748
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Sep 6 22:15:18 2023 +0200

    FormField::getFullyQualifiedName: Fix infinite loop on malformed files

 poppler/Form.cc | 52 +++++++++++++++++++++++++++++-----------------------
 1 file changed, 29 insertions(+), 23 deletions(-)

commit d253013a0ce0dd0cf79070dd718377b3b3afc7ce
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Sep 6 21:54:30 2023 +0200

    Update (C)

 utils/pdfsig.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4ba2441bcbf0b4a7b2aaa080ce3a9a1d04d80e64
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Sat Jun 17 09:26:15 2023 +0200

    Let method utf8ToUtf16WithBom return a std::string object

    Rather than a std::unique_ptr to a GooString. This avoids a heap
    allocation.

 glib/poppler-document.cc           |  4 ++--
 poppler/Lexer.cc                   |  5 +++--
 poppler/UTF.cc                     | 10 +++++-----
 poppler/UTF.h                      |  9 ++++++---
 qt5/tests/check_utf_conversion.cpp |  4 ++--
 qt6/tests/check_utf_conversion.cpp |  4 ++--
 utils/pdfattach.cc                 | 10 +++++-----
 utils/pdfsig.cc                    |  4 ++--
 8 files changed, 27 insertions(+), 23 deletions(-)

commit 6e2c0fe0434cfadc3d161e7cd348212f644b725e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 5 23:15:14 2023 +0200

    poppler 23.09.0

 CMakeLists.txt         |  4 ++--
 NEWS                   | 20 ++++++++++++++++++++
 cpp/Doxyfile           |  2 +-
 qt5/src/CMakeLists.txt |  2 +-
 qt5/src/Doxyfile       |  2 +-
 qt6/src/CMakeLists.txt |  2 +-
 qt6/src/Doxyfile       |  2 +-
 7 files changed, 27 insertions(+), 7 deletions(-)

commit 73985c62006b7faa0fd46a1bc83e578809da7ae2
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 5 20:21:55 2023 +0200

    Update (C)

 qt5/src/poppler-ps-converter.cc | 1 +
 qt5/src/poppler-qt5.h           | 1 +
 qt6/src/poppler-ps-converter.cc | 1 +
 qt6/src/poppler-qt6.h           | 1 +
 4 files changed, 4 insertions(+)

commit 309cee09f2f199dd70d066fad63a9b730881d151
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 5 09:49:31 2023 +0200

    CI: Use non deprecated variable

    Hopefully this fixes the problem with wrong caches being picked up

 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 00b7f3471ec8d9e40d8f713b30cd8378fe7cf06f
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 5 00:47:52 2023 +0200

    PDFDoc::savePageAs: Return cleanly if Catalog Pages is not a dict

 poppler/PDFDoc.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 27acee72fd3da6ce3d2027f7758d22b98022ccd4
Author: Kevin Ottens <kevin.ottens@enioka.com>
Date:   Wed Aug 30 15:56:06 2023 +0200

    Allow to force a rasterized overprint preview during PS conversion

 qt5/src/poppler-ps-converter.cc | 14 ++++++++++++++
 qt5/src/poppler-qt5.h           | 13 ++++++++++++-
 qt6/src/poppler-ps-converter.cc | 14 ++++++++++++++
 qt6/src/poppler-qt6.h           | 13 ++++++++++++-
 4 files changed, 52 insertions(+), 2 deletions(-)

commit 785a87baa33059d6293c8764e863b1bd7f9ffaf9
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Sep 5 00:09:42 2023 +0200

    Update (C)

 goo/GooString.cc             | 1 +
 poppler/Lexer.cc             | 1 +
 poppler/NameToUnicodeTable.h | 2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)

commit e121f3d29f2bdbf44d9e4d67729c1423dbc1db82
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Wed Aug 30 22:42:05 2023 +0200

    GooString::appendfv(): emit warning on strings > 2 GB

 goo/GooString.cc | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit b8dc27ac07dfea0141211124944b835c35c0d626
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Mon Aug 28 10:50:04 2023 +0200

    GooString::appendfv(): avoid int overflow on strings > 2 GB

 goo/GooString.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4202ea8077e16ef62d4955086e80e4347e3f61c4
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Mon Aug 28 10:45:04 2023 +0200

    Lexer: limit max name token length to 1 MB.

    Currently there is no hard limit to the maximum length of a name,
    which
    may cause the ``n`` variable to overflow INT_MAX (mostly unnoticed
    unless building with -ftrapv), but later when drawing a page
    using such
    invalid huge name, ``len = strlen(str)`` at line 417 of GooString.cc,
    invoked by ``error(errSyntaxError, -1, "XObject '{0:s}' is unknown",
    name)`` in Gfx.cc::334, overflows to a negative value, which causes an
    invalid length exception in ``append(str, len)`` at GooString.cc:445

    Thus we limit the maximum length of a name to 1 MB which is way beyond
    what the spec allows.

 poppler/Lexer.cc | 5 +++++
 1 file changed, 5 insertions(+)

commit 38692ffde1dd8f1321f10ed3d962283cd96662e0
Author: Vincent Lefevre <vincent@vinc17.net>
Date:   Wed Aug 30 14:17:07 2023 +0200

    Add ToUnicode support for similarequal

    For \simeq, TeX generates /similarequal instead of Adobe's
    /asymptoticallyequal; so similarequal needs to be supported too.

    In TeX Live 2023:
    texmf-dist/fonts/map/glyphlist/glyphlist.txt (Adobe Glyph List)
    contains
      asymptoticallyequal;2243
    but texmf-dist/fonts/map/glyphlist/texglyphlist.txt (Extensions to the
    Adobe Glyph List for TeX fonts and encodings) contains
      similarequal;2243
    As a consequence, texmf-dist/tex/generic/pdftex/glyphtounicode.tex
    contains both
      \pdfglyphtounicode{asymptoticallyequal}{2243}
      \pdfglyphtounicode{similarequal}{2243}

    NameToUnicodeTable.h already has
      { 0x2243, "asymptoticallyequal" }
    so one just needs to add the missing
      { 0x2243, "similarequal" }

 poppler/NameToUnicodeTable.h | 1 +
 1 file changed, 1 insertion(+)

commit 67bd938e9c6b75bd34e0231fd50b567b118e69af
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Aug 30 11:11:45 2023 +0200

    Add (C)

 poppler/Annot.cc | 1 +
 1 file changed, 1 insertion(+)

commit 3fd5a6f4dfc5c6388d896ac72ffa9584c753ef22
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Aug 10 16:36:03 2023 +0200

    Fix digital signatures for NeedAppearance=true

    Always write out the appearance streams for signatures. Several pdf
    readers can't create it
     - firefox pdf viewer
     - ghostscript
     - ourselves
    Also, annotations without appearance streams are deprecated in pdf2.0.

    Also, if appearance streams exists for a digital signature, don't
    regenerate it, as that results is an empty visual representation,
    and it
    might also fiddle with the signature valudation

    It is not completely clear from the standard if this is 100%
    conforming
    behavior, but NeedAppearance should be set to true if some annotatinos
    are without appearance streams; it is not really described what should
    happen if NeedAppearances is true and some annotations are with
    appearance streams.

 poppler/Annot.cc | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 2368e099c9cd36d8156a2d188d6cab1883410ff7
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Aug 23 16:32:08 2023 +0200

    Update (C)

 poppler/GlobalParams.cc    | 1 +
 poppler/GlobalParams.h     | 1 +
 qt5/src/poppler-private.cc | 1 +
 qt6/src/poppler-private.cc | 1 +
 4 files changed, 4 insertions(+)

commit bdaa042978b0bd3e6bcbc1879263597837336715
Author: Shivodit Gill <shivodit.gill@gmail.com>
Date:   Wed Aug 23 12:34:09 2023 +0000

    Add Android-specific font matching functionality to Poppler

 CMakeLists.txt             |  16 +++--
 config.h.cmake             |   3 +
 poppler/GlobalParams.cc    | 161
 ++++++++++++++++++++++++++++++++++++++++++++-
 poppler/GlobalParams.h     |   4 +-
 qt5/src/Mainpage.dox       |  19 ++++++
 qt5/src/poppler-private.cc |  33 +++++++++-
 qt6/src/Mainpage.dox       |  20 ++++++
 qt6/src/poppler-private.cc |  32 +++++++++
 8 files changed, 281 insertions(+), 7 deletions(-)

commit 7da36fe953d67c9a14a42bfda28d44cd3bf1880c
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Aug 9 18:59:48 2023 +0200

    Revert "CI: fedora mingw qt6 is borked again :/"

    This reverts commit 9f1885168bd380583390a805b580af1604a3990b.

 .gitlab-ci.yml | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 7dedced88e354625ef3f4dc09c9732a4d91cf5d7
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Aug 2 22:39:27 2023 +0000

    Provide the key location for certificates you can sign with

 poppler/CertificateInfo.cc        | 11 ++++++++++-
 poppler/CertificateInfo.h         | 19 +++++++++++++++++++
 poppler/GPGMECryptoSignBackend.cc |  7 +++++++
 qt5/src/poppler-form.cc           | 23 +++++++++++++++++++++++
 qt5/src/poppler-form.h            | 25 +++++++++++++++++++++++++
 qt6/src/poppler-form.cc           | 23 +++++++++++++++++++++++
 qt6/src/poppler-form.h            | 25 +++++++++++++++++++++++++
 utils/pdfsig.cc                   | 18 +++++++++++++++++-
 8 files changed, 149 insertions(+), 2 deletions(-)

commit 1f1823045d71cc2f00ef43320cd181adf68a9d9f
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Tue Jul 18 10:07:50 2023 +0200

    Don't look up same glyph multiple times

    When  iterating over the unicode codepoints, no need to check
    the fonts
    if they still contains the same glyph as we already checked.

 poppler/Form.cc | 6 ++++++
 1 file changed, 6 insertions(+)

commit 6e96ac9d2f5003e27bb2772ea71d76f0d2c30ebe
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Aug 1 23:51:42 2023 +0200

    poppler 23.08.0

 CMakeLists.txt      |  2 +-
 NEWS                | 16 ++++++++++++++++
 cpp/Doxyfile        |  2 +-
 glib/CMakeLists.txt |  2 +-
 qt5/src/Doxyfile    |  2 +-
 qt6/src/Doxyfile    |  2 +-
 6 files changed, 21 insertions(+), 5 deletions(-)

commit 9f1885168bd380583390a805b580af1604a3990b
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Aug 1 20:14:39 2023 +0200

    CI: fedora mingw qt6 is borked again :/

 .gitlab-ci.yml | 12 ------------
 1 file changed, 12 deletions(-)

