[poppler] splash/Splash.cc

Albert Astals Cid aacid at kemper.freedesktop.org
Wed Jan 9 13:49:20 PST 2013


 splash/Splash.cc |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

New commits:
commit a205e71a2dbe0c8d4f4905a76a3f79ec522eacec
Author: Albert Astals Cid <aacid at kde.org>
Date:   Wed Jan 9 22:47:28 2013 +0100

    Do not crash in broken documents like 1007.pdf.asan.48.4

diff --git a/splash/Splash.cc b/splash/Splash.cc
index 336872b..2e3687a 100644
--- a/splash/Splash.cc
+++ b/splash/Splash.cc
@@ -2954,6 +2954,11 @@ void Splash::arbitraryTransformMask(SplashImageMaskSource src, void *srcData,
   // scale the input image
   scaledMask = scaleMask(src, srcData, srcWidth, srcHeight,
 			 scaledWidth, scaledHeight);
+  if (scaledMask->data == NULL) {
+    error(errInternal, -1, "scaledMask->data is NULL in Splash::scaleMaskYuXu");
+    delete scaledMask;
+    return;
+  }
 
   // construct the three sections
   i = (vy[2] <= vy[3]) ? 2 : 3;
@@ -3381,6 +3386,12 @@ void Splash::scaleMaskYuXu(SplashImageMaskSource src, void *srcData,
   int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx;
   int i, j;
 
+  destPtr0 = dest->data;
+  if (destPtr0 == NULL) {
+    error(errInternal, -1, "dest->data is NULL in Splash::scaleMaskYuXu");
+    return;
+  }
+
   // Bresenham parameters for y scale
   yp = scaledHeight / srcHeight;
   yq = scaledHeight % srcHeight;
@@ -3395,7 +3406,6 @@ void Splash::scaleMaskYuXu(SplashImageMaskSource src, void *srcData,
   // init y scale Bresenham
   yt = 0;
 
-  destPtr0 = dest->data;
   for (y = 0; y < srcHeight; ++y) {
 
     // y scale Bresenham


More information about the poppler mailing list