poppler/JBIG2Stream.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
New commits: commit 548c72600b8a5e076647041660ed5031feedc7cc Author: Albert Astals Cid <[email protected]> Date: Wed May 20 22:43:11 2009 +0200 Do not exit(1) on a pdf i have lying around PDF is 0f03b3539a436a9f18d7e4e29d410f89 6607907.pdf diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc index 16cf1d8..57ec42b 100644 --- a/poppler/JBIG2Stream.cc +++ b/poppler/JBIG2Stream.cc @@ -1024,6 +1024,7 @@ public: Guint getSize() { return size; } void setBitmap(Guint idx, JBIG2Bitmap *bitmap) { bitmaps[idx] = bitmap; } JBIG2Bitmap *getBitmap(Guint idx) { return bitmaps[idx]; } + GBool isOk() { return bitmaps != NULL; } void setGenericRegionStats(JArithmeticDecoderStats *stats) { genericRegionStats = stats; } void setRefinementRegionStats(JArithmeticDecoderStats *stats) @@ -1045,7 +1046,8 @@ JBIG2SymbolDict::JBIG2SymbolDict(Guint segNumA, Guint sizeA): JBIG2Segment(segNumA) { size = sizeA; - bitmaps = (JBIG2Bitmap **)gmallocn(size, sizeof(JBIG2Bitmap *)); + bitmaps = (JBIG2Bitmap **)gmallocn_checkoverflow(size, sizeof(JBIG2Bitmap *)); + if (!bitmaps) size = 0; genericRegionStats = NULL; refinementRegionStats = NULL; } @@ -1816,6 +1818,10 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length, // create the symbol dict object symbolDict = new JBIG2SymbolDict(segNum, numExSyms); + if (!symbolDict->isOk()) { + delete symbolDict; + goto syntaxError; + } // exported symbol list i = j = 0; _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
