- 14 Aug, 2021 1 commit
-
-
Zachary Travis authored
-
- 02 Jul, 2021 1 commit
-
-
Albert Astals Cid authored
-
- 01 Jul, 2021 1 commit
-
-
Uli Schlachter authored
The textClipPath member is set in CairoOutputDev::endString() and freed in CairoOutputDev::endTextObject(). However, if endTextObject() is not called for whatever reason, the path will just be leaked. This adds code to the destructor to free this. This fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32326 Testing done: $ wget -O testcase 'https://oss-fuzz.com/download?testcase_id=6659952325296128' [...] $ cmake .. -G Ninja -DENABLE_DCTDECODER=unmaintained -DENABLE_BOOST=OFF -DENABLE_LIBOPENJPEG=unmaintained && ninja [...] $ git describe poppler-21.06.1-5-gb7c40059 $ valgrind --leak-check=full ./utils/pdftocairo testcase -png foo [...] ==104075== ==104075== HEAP SUMMARY: ==104075== in use at exit: 28,292 bytes in 55 blocks ==104075== total heap usage: 6,114 allocs, 6,059 frees, 1,617,444 bytes allocated ==104075== ==104075== 24 bytes in 1 blocks are definitely lost in loss record 4 of 37 ==104075== at 0x483877F: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==104075== by 0x48AE748: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11600.0) ==104075== by 0x118995: endString (CairoOutputDev.cc:1474) ==104075== by 0x118995: CairoOutputDev::endString(GfxState*) (CairoOutputDev.cc:1412) ==104075== by 0x4B97295: Gfx::doShowText(GooString const*) (Gfx.cc:4010) ==104075== by 0x4B97CB4: Gfx::opShowSpaceText(Object*, int) (Gfx.cc:3793) ==104075== by 0x4B8D866: Gfx::go(bool) (Gfx.cc:681) ==104075== by 0x4B8DCFA: display (Gfx.cc:642) ==104075== by 0x4B8DCFA: Gfx::display(Object*, bool) (Gfx.cc:622) ==104075== by 0x4BE1A83: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (Page.cc:576) ==104075== by 0x11317C: renderPage (pdftocairo.cc:669) ==104075== by 0x11317C: main (pdftocairo.cc:1183) ==104075== ==104075== LEAK SUMMARY: ==104075== definitely lost: 24 bytes in 1 blocks ==104075== indirectly lost: 0 bytes in 0 blocks ==104075== possibly lost: 0 bytes in 0 blocks ==104075== still reachable: 28,268 bytes in 54 blocks ==104075== suppressed: 0 bytes in 0 blocks ==104075== Reachable blocks (those to which a pointer was found) are not shown. ==104075== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==104075== ==104075== For lists of detected and suppressed errors, rerun with: -s ==104075== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) $ git checkout cairo-leak-textClipPath && git describe && ninja Zu Branch 'cairo-leak-textClipPath' gewechselt poppler-21.06.1-6-g8df6f8d2 $ valgrind --leak-check=full ./utils/pdftocairo testcase -png foo [...] ==104263== ==104263== HEAP SUMMARY: ==104263== in use at exit: 28,268 bytes in 54 blocks ==104263== total heap usage: 6,114 allocs, 6,060 frees, 1,617,444 bytes allocated ==104263== ==104263== LEAK SUMMARY: ==104263== definitely lost: 0 bytes in 0 blocks ==104263== indirectly lost: 0 bytes in 0 blocks ==104263== possibly lost: 0 bytes in 0 blocks ==104263== still reachable: 28,268 bytes in 54 blocks ==104263== suppressed: 0 bytes in 0 blocks ==104263== Reachable blocks (those to which a pointer was found) are not shown. ==104263== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==104263== ==104263== For lists of detected and suppressed errors, rerun with: -s ==104263== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) As you (might) see, before this commit, there is a "definitely lost" leak of 24 bytes with this test case. After this commit, this leak is gone. Signed-off-by:
Uli Schlachter <psychon@znc.in>
-
- 07 Feb, 2021 1 commit
-
-
Albert Astals Cid authored
instead of lots of fields from it Makes the signature simpler :)
-
- 29 Oct, 2020 1 commit
-
-
Albert Astals Cid authored
-
- 03 Jul, 2020 1 commit
-
-
Albert Astals Cid authored
find . \( -name "*.cpp" -or -name "*.h" -or -name "*.c" -or -name "*.cc" \) -exec clang-format -i {} \; If you reached this file doing a git blame, please see README.contributors (instructions added 2 commits in the future to this one)
-
- 13 May, 2020 1 commit
-
-
Albert Astals Cid authored
-
- 12 May, 2020 1 commit
-
-
Rendering of tiling pattern which has pattern matrix moving pattern cell far away can fail on allocation of memory. This commit solves the issue by modifying of cairo pattern matrix so that its offset is closer to the path filled by the pattern. Fixes #190
-
- 11 May, 2020 2 commits
-
-
Oliver Sander authored
-
Oliver Sander authored
Fixes: poppler/poppler#178
-
- 04 Jan, 2020 3 commits
-
-
Albert Astals Cid authored
-
-
-
- 02 Dec, 2019 1 commit
-
-
Albert Astals Cid authored
No copyright, this is a mechanical change
-
- 29 Nov, 2019 1 commit
-
-
Albert Astals Cid authored
-
- 23 Nov, 2019 1 commit
-
-
Albert Astals Cid authored
-
- 20 Oct, 2019 1 commit
-
-
Albert Astals Cid authored
-
- 27 Sep, 2019 1 commit
-
-
Albert Astals Cid authored
Suggested by clang-tidy readability-non-const-parameter check
-
- 22 Sep, 2019 1 commit
-
-
Albert Astals Cid authored
-
- 20 Sep, 2019 1 commit
-
-
Marek Kasik authored
Check scaledWidth and scaledHeight for 0 at RescaleDrawImage::getSourceImage() as is done on other places. Set the dimension to 1 if it is 0. Fixes issue #737
-
- 21 Jun, 2019 2 commits
-
-
Fixes shadow warnings and in some cases makes for better C++ code not using this->
-
reflects better what it is and fixes several shadow warnings
-
- 06 Feb, 2019 2 commits
-
-
Albert Astals Cid authored
-
Albert Astals Cid authored
In ImageOutputDev it comes directly from malloc, and malloc guarantees alignment for basic types, so we're good In ArthurOutputDev it comes from QImage::bits that uses malloc internally, so we're good In cairo* it comes from cairo_image_surface_get_data that comes from pixman_image_get_data that returns a uint32_t * so we're only going to the original type alignment
-
- 20 Dec, 2018 1 commit
-
-
Yuri Chornoivan authored
-
- 06 Dec, 2018 1 commit
-
-
- 11 Nov, 2018 1 commit
-
-
This is the name used by std::string.
-
- 01 Nov, 2018 3 commits
-
-
Albert Astals Cid authored
-
Adrian Johnson authored
-
Adrian Johnson authored
to avoid using PS memory on cairo >= 1.5.10
-
- 23 Oct, 2018 1 commit
-
-
These are just non-standard names for bool, true, false, respectively. Getting rid of these names saves on layer of mental redirection, and enables proper syntax highlighting in editors.
-
- 21 Oct, 2018 1 commit
-
-
Albert Astals Cid authored
-
- 10 Oct, 2018 1 commit
-
-
Adam Reichold authored
GCC recommends not using them for a long time and its documentation says: > These #pragmas have been superceded as of GCC 2.7.2 by COMDAT support > and the “key method” heuristic mentioned in Vague Linkage. > Using them can actually cause your program to grow due to > unnecessary out-of-line copies of inline functions. Also nobody seems to set USE_GCC_PRAGMAS and sometimes they were guarded by just __GNUC__ which upsets Clang.
-
- 09 Oct, 2018 1 commit
-
-
Adam Reichold authored
-
- 23 Sep, 2018 1 commit
-
-
Albert Astals Cid authored
Marked some caches as mutable Fixed an actual bug in page::text that was swapping the page cropbox in each call
-
- 22 Jun, 2018 1 commit
-
-
Albert Astals Cid authored
fixes oss-fuzz/8929
-
- 06 Apr, 2018 1 commit
-
-
People that use poppler core, beware of the signature change!
-
- 18 Mar, 2018 1 commit
-
-
Albert Astals Cid authored
-
- 04 Mar, 2018 1 commit
-
-
Carlos Garcia Campos authored
The quality is good enough and the performance is much better. https://bugs.freedesktop.org/show_bug.cgi?id=103136
-
- 02 Feb, 2018 1 commit
-
-
Albert Astals Cid authored
More to come, -Wshadow is interesting but if we enable it we still get too many warnings for it to be useful
-