[poppler] poppler/SplashOutputDev.cc

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 12 14:42:27 UTC 2023


 poppler/SplashOutputDev.cc |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit e0148dbc9a0189d1ee982a1b3e763930e086b919
Author: Thomas Freitag <thomas.freitag.bbr at gmail.com>
Date:   Wed Jul 12 14:42:25 2023 +0000

    avoid bogus memory allocation size in doTilingPatternFill

diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc
index 19ca649d..0559f5e9 100644
--- a/poppler/SplashOutputDev.cc
+++ b/poppler/SplashOutputDev.cc
@@ -4309,6 +4309,15 @@ bool SplashOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat
         surface_height = (int)ceil(fabs(ky));
         repeatX = x1 - x0;
         repeatY = y1 - y0;
+        while ((unsigned long)repeatX * repeatY > 0x800000L) {
+            // try to avoid bogus memory allocation size
+            if (repeatX > 1) {
+                repeatX /= 2;
+            }
+            if (repeatY > 1) {
+                repeatY /= 2;
+            }
+        }
     } else {
         if ((unsigned long)surface_width * surface_height > 0x800000L) {
             state->setCTM(savedCTM[0], savedCTM[1], savedCTM[2], savedCTM[3], savedCTM[4], savedCTM[5]);


More information about the poppler mailing list