Console View
|
|
|||
Albert Astals Cid
aacid @kde.org |
|
||
poppler 23.12.0 | |||
Albert Astals Cid
aacid @kde.org |
|
||
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 |
|||
Albert Astals Cid
aacid @kde.org |
|
||
Update (C) | |||
Oliver Sander
oliver.sander @tu-dresden.de |
|
||
Lexer: Allocate strings on the stack, not on the heap Makes the code easier to read, and possibly even a bit faster, too. |
|||
Oliver Sander
oliver.sander @tu-dresden.de |
|
||
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. |
|||
Albert Astals Cid
aacid @kde.org |
|
||
poppler 23.11.0 | |||
Albert Astals Cid
aacid @kde.org |
|
||
Update (C) | |||
Albert Astals Cid
aacid @kde.org |
|
||
Simple GooString -> std::string change | |||
Albert Astals Cid
aacid @kde.org |
|
||
Fix crash on broken files Bug #1441 |
|||
Anton Thomasson
antonthomasson @gmail.com |
|
||
Use internal downscaling algorithm if image exceeds Cairo's maximum dimensions. | |||
Albert Astals Cid
aacid @kde.org |
|
||
Use RefRecursionChecker instead std::set Much simpler code |
|||
Albert Astals Cid
aacid @kde.org |
|
||
Update (C) | |||
Oliver Sander
oliver.sander @tu-dresden.de |
|
||
Remove method GooString::hasJustUnicodeMarker Because it is used only once, and writing "== unicodeByteOrderMark" instead is just as short and readable. |
|||
Oliver Sander
oliver.sander @tu-dresden.de |
|
||
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. |
|||
Albert Astals Cid
aacid @kde.org |
|
||
Update (C) | |||
Adrian Johnson
ajohnson @redneon.com |
|
||
pdftocairo: EPS output should not contain %%PageOrientation | |||
Adrian Johnson
ajohnson @redneon.com |
|
||
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. |
|||
Albert Astals Cid
aacid @kde.org |
|
||
poppler 23.10.0 | |||
Sune Vuorela
sune @vuorela.dk |
|
||
Check if linker supports version scripts This is at least not fully supported on solaris. |
|||
Albert Astals Cid
aacid @kde.org |
|
||
CI: Use fedora 39 | |||
Albert Astals Cid
aacid @kde.org |
|
||
CI: Use clang 16 | |||
Albert Astals Cid
aacid @kde.org |
|
||
FoFiType1::parse: Also keep parsing if !gotMatrix We probably forgot to add it in 876021b1aa16ad38767a91e1be31c392f368fde2 |
|||
Albert Astals Cid
aacid @kde.org |
|
||
Use RefRecursionChecker in StructElement | |||
Albert Astals Cid
aacid @kde.org |
|
||
CI: Add android Qt6 CI | |||
Albert Astals Cid
aacid @kde.org |
|
||
Update (C) | |||
Albert Astals Cid
aacid @kde.org |
|
||
Use zu for printf + size_t | |||
Adrian Johnson
ajohnson @redneon.com |
|
||
cairo: update type 3 fonts for cairo 1.18 api | |||
Albert Astals Cid
aacid @kde.org |
|
||
CI: -DENABLE_GPGME=OFF for glib_docs | |||
Albert Astals Cid
aacid @kde.org |
|
||
Make a few more dependencies soft-mandatory they can be disabled via cmake option |
|||
Albert Astals Cid
aacid @kde.org |
|
||
Update (C) | |||
Albert Astals Cid
aacid @kde.org |
|
||
FontInfoScanner::scanFonts: Fix infinite recursion on broken files | |||
Albert Astals Cid
aacid @kde.org |
|
||
Introduce RefRecursionChecker | |||
Albert Astals Cid
aacid @kde.org |
|
||
Fix DCTStream getting stuck in some broken files Fixes #1430 |
|||
Albert Astals Cid
aacid @kde.org |
|
||
Update (C) | |||
Albert Astals Cid
aacid @kde.org |
|
||
PDFDoc::savePageAs: Use more unique_ptr | |||
Even Rouault
even.rouault @spatialys.com |
|
||
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. |
|||
Albert Astals Cid
aacid @kde.org |
|
||
PDFDoc::savePageAs: Return cleanly if page is not a dict | |||
Albert Astals Cid
aacid @kde.org |
|
||
CI: unbreak mingw | |||
Sune Vuorela
sune @vuorela.dk |
|
||
More supported gnupg releases The upcoming 2.2.42 version will have the bugfixes backported for pdf signatures to work. |
|||
Albert Astals Cid
aacid @kde.org |
|
||
FormField::getFullyQualifiedName: Fix infinite loop on malformed files | |||