CHANGELOG 2005-08-17
[hdw-linux/hdw-linux.git] / packages / x11 / xpdf / pl2.patch
diff --git a/packages/x11/xpdf/pl2.patch b/packages/x11/xpdf/pl2.patch
new file mode 100644 (file)
index 0000000..a491dda
--- /dev/null
@@ -0,0 +1,54 @@
+*** ./xpdf/Gfx.cc.orig Sun Dec 12 16:04:43 2004
+--- ./xpdf/Gfx.cc      Sun Dec 12 16:05:16 2004
+***************
+*** 2654,2660 ****
+      haveMask = gFalse;
+      dict->lookup("Mask", &maskObj);
+      if (maskObj.isArray()) {
+!       for (i = 0; i < maskObj.arrayGetLength(); ++i) {
+       maskObj.arrayGet(i, &obj1);
+       maskColors[i] = obj1.getInt();
+       obj1.free();
+--- 2654,2662 ----
+      haveMask = gFalse;
+      dict->lookup("Mask", &maskObj);
+      if (maskObj.isArray()) {
+!       for (i = 0;
+!         i < maskObj.arrayGetLength() && i < 2*gfxColorMaxComps;
+!         ++i) {
+       maskObj.arrayGet(i, &obj1);
+       maskColors[i] = obj1.getInt();
+       obj1.free();
+*** ./xpdf/GfxState.cc.orig    Sun Dec 12 16:04:48 2004
+--- ./xpdf/GfxState.cc Sun Dec 12 16:06:38 2004
+***************
+*** 708,713 ****
+--- 708,718 ----
+    }
+    nCompsA = obj2.getInt();
+    obj2.free();
++   if (nCompsA > gfxColorMaxComps) {
++     error(-1, "ICCBased color space with too many (%d > %d) components",
++        nCompsA, gfxColorMaxComps);
++     nCompsA = gfxColorMaxComps;
++   }
+    if (dict->lookup("Alternate", &obj2)->isNull() ||
+        !(altA = GfxColorSpace::parse(&obj2))) {
+      switch (nCompsA) {
+***************
+*** 1054,1060 ****
+    }
+    nCompsA = obj1.arrayGetLength();
+    if (nCompsA > gfxColorMaxComps) {
+!     error(-1, "DeviceN color space with more than %d > %d components",
+         nCompsA, gfxColorMaxComps);
+      nCompsA = gfxColorMaxComps;
+    }
+--- 1059,1065 ----
+    }
+    nCompsA = obj1.arrayGetLength();
+    if (nCompsA > gfxColorMaxComps) {
+!     error(-1, "DeviceN color space with too many (%d > %d) components",
+         nCompsA, gfxColorMaxComps);
+      nCompsA = gfxColorMaxComps;
+    }