34 lines
1.0 KiB
Diff
34 lines
1.0 KiB
Diff
*** xpdf-3.02.orig/xpdf/Stream.cc Tue Feb 27 14:05:52 2007
|
|
--- xpdf-3.02/xpdf/Stream.cc Thu Jul 26 14:44:43 2007
|
|
***************
|
|
*** 410,424 ****
|
|
ok = gFalse;
|
|
|
|
nVals = width * nComps;
|
|
- if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
|
- nComps >= INT_MAX / nBits ||
|
|
- width >= INT_MAX / nComps / nBits ||
|
|
- nVals * nBits + 7 < 0) {
|
|
- return;
|
|
- }
|
|
pixBytes = (nComps * nBits + 7) >> 3;
|
|
rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes;
|
|
! if (rowBytes <= 0) {
|
|
return;
|
|
}
|
|
predLine = (Guchar *)gmalloc(rowBytes);
|
|
--- 410,422 ----
|
|
ok = gFalse;
|
|
|
|
nVals = width * nComps;
|
|
pixBytes = (nComps * nBits + 7) >> 3;
|
|
rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes;
|
|
! if (width <= 0 || nComps <= 0 || nBits <= 0 ||
|
|
! nComps > gfxColorMaxComps ||
|
|
! nBits > 16 ||
|
|
! width >= INT_MAX / nComps || // check for overflow in nVals
|
|
! nVals >= (INT_MAX - 7) / nBits) { // check for overflow in rowBytes
|
|
return;
|
|
}
|
|
predLine = (Guchar *)gmalloc(rowBytes);
|