--- filters/kword/pdf/xpdf/xpdf/Stream.cc +++ filters/kword/pdf/xpdf/xpdf/Stream.cc @@ -413,13 +413,11 @@ StreamPredictor::StreamPredictor(Stream predLine = NULL; ok = gFalse; - if (width <= 0 || nComps <= 0 || nBits <= 0 || - nComps >= INT_MAX / nBits || - width >= INT_MAX / nComps / nBits) - return; - nVals = width * nComps; - if (nVals * nBits + 7 <= 0) + if (width <= 0 || nComps <= 0 || nBits <= 0 || + nComps >= 4 || nBits > 16 || + width >= INT_MAX / nComps || + nVals >= (INT_MAX - 7) / nBits) return; pixBytes = (nComps * nBits + 7) >> 3;