libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit 033f5f61bf8666d3528742335233c5b29da07c98
parent e467ddca19ac2233c021bb7f41ce13cb6d8d8c95
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri,  9 Dec 2005 19:35:17 +0000

sync

Diffstat:
Msrc/plugins/pdf/Stream.cc | 10+++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/plugins/pdf/Stream.cc b/src/plugins/pdf/Stream.cc @@ -2921,9 +2921,6 @@ GBool DCTStream::readBaselineSOF() { if (numComps <= 0 || numComps > 4) { return gFalse; } - if (numComps <= 0 || numComps > 4) { - return gFalse; - } if (prec != 8) { error(getPos(), "Bad DCT precision %d", prec); @@ -2951,6 +2948,9 @@ GBool DCTStream::readProgressiveSOF() { height = read16(); width = read16(); numComps = str->getChar(); + if (numComps <= 0 || numComps > 4) { + return gFalse; + } if (prec != 8) { error(getPos(), "Bad DCT precision %d", prec); return gFalse; @@ -2973,6 +2973,10 @@ GBool DCTStream::readScanInfo() { length = read16() - 2; scanInfo.numComps = str->getChar(); + if (scanInfo.numComps <= 0 || scanInfo.numComps > 4) { + error(getPos(), "Bad number of components in DCT stream"); + return gFalse; + } --length; if (length != 2 * scanInfo.numComps + 3) { error(getPos(), "Bad DCT scan info block");