[poppler] poppler/GfxState.cc
Albert Astals Cid
aacid at kemper.freedesktop.org
Wed Nov 5 13:48:52 PST 2008
poppler/GfxState.cc | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
New commits:
commit aaaecd2e86769d3a99e21577448a193711985958
Author: Albert Astals Cid <aacid at kde.org>
Date: Wed Nov 5 22:47:30 2008 +0100
Do not abort if indexHighA is 'invalid', move it to the closest valid value and try with it
For the bug 18374 it works and does not seem a security problem
diff --git a/poppler/GfxState.cc b/poppler/GfxState.cc
index 2e01b2b..7bb0667 100644
--- a/poppler/GfxState.cc
+++ b/poppler/GfxState.cc
@@ -1122,9 +1122,10 @@ GfxColorSpace *GfxIndexedColorSpace::parse(Array *arr) {
// values larger than 255 creates a security hole: if nComps *
// indexHigh is greater than 2^31, the loop below may overwrite
// past the end of the array
- error(-1, "Bad Indexed color space (invalid indexHigh value)");
- delete baseA;
- goto err2;
+ int previousValue = indexHighA;
+ if (indexHighA < 0) indexHighA = 0;
+ else indexHighA = 255;
+ error(-1, "Bad Indexed color space (invalid indexHigh value, was %d using %d to try to recover)", previousValue, indexHighA);
}
obj1.free();
cs = new GfxIndexedColorSpace(baseA, indexHighA);
More information about the poppler
mailing list