Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > by-pkgid > bc717b9e96f4070e178e261ab5007579 > files > 21

cups-1.2.4-1.8mdv2007.0.src.rpm

--- cups-1.2.4/pdftops/Stream.cxx	2007-07-16 13:19:57.000000000 +0100
+++ cups-1.2.4/pdftops/Stream.cxx	2007-07-18 11:44:22.000000000 +0100
@@ -411,15 +411,13 @@
   ok = gFalse;
 
   nVals = width * nComps;
-  if (width <= 0 || nComps <= 0 || nBits <= 0 ||
-      nComps >= INT_MAX / nBits ||
-      width >= INT_MAX / nComps / nBits ||
-      nVals * nBits + 7 < 0) {
-    return;
-  }
   pixBytes = (nComps * nBits + 7) >> 3;
   rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes;
-  if (rowBytes <= 0) {
+  if (width <= 0 || nComps <= 0 || nBits <= 0 ||
+      nComps > gfxColorMaxComps ||
+      nBits > 16 ||
+      width >= INT_MAX / nComps ||      // check for overflow in nVals
+      nVals >= (INT_MAX - 7) / nBits) { // check for overflow in rowBytes
     return;
   }
   predLine = (Guchar *)gmalloc(rowBytes);