poppler/JBIG2Stream.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-)
New commits: commit f2a6c6fe06ba2279f8509c56a11d649f02d1500c Author: Albert Astals Cid <[email protected]> Date: Sun Jul 4 22:02:08 2021 +0200 JBIG2Stream: Fix regression caused by 2b2808719d2c91283ae358381391bb0b37d9061d diff --git a/poppler/JBIG2Stream.cc b/poppler/JBIG2Stream.cc index 6ee19847..725b2cf9 100644 --- a/poppler/JBIG2Stream.cc +++ b/poppler/JBIG2Stream.cc @@ -967,13 +967,14 @@ public: unsigned int getSize() { return size; } void setBitmap(unsigned int idx, JBIG2Bitmap *bitmap) { bitmaps[idx] = bitmap; } JBIG2Bitmap *getBitmap(unsigned int idx) { return bitmaps[idx]; } - bool isOk() { return bitmaps != nullptr || size == 0; } + bool isOk() const { return ok; } void setGenericRegionStats(JArithmeticDecoderStats *stats) { genericRegionStats = stats; } void setRefinementRegionStats(JArithmeticDecoderStats *stats) { refinementRegionStats = stats; } JArithmeticDecoderStats *getGenericRegionStats() { return genericRegionStats; } JArithmeticDecoderStats *getRefinementRegionStats() { return refinementRegionStats; } private: + bool ok; unsigned int size; JBIG2Bitmap **bitmaps; JArithmeticDecoderStats *genericRegionStats; @@ -982,13 +983,18 @@ private: JBIG2SymbolDict::JBIG2SymbolDict(unsigned int segNumA, unsigned int sizeA) : JBIG2Segment(segNumA) { - unsigned int i; - + ok = true; size = sizeA; - bitmaps = (JBIG2Bitmap **)gmallocn_checkoverflow(size, sizeof(JBIG2Bitmap *)); - if (!bitmaps) - size = 0; - for (i = 0; i < size; ++i) { + if (size != 0) { + bitmaps = (JBIG2Bitmap **)gmallocn_checkoverflow(size, sizeof(JBIG2Bitmap *)); + if (!bitmaps) { + ok = false; + size = 0; + } + } else { + bitmaps = nullptr; + } + for (unsigned int i = 0; i < size; ++i) { bitmaps[i] = nullptr; } genericRegionStats = nullptr; _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
