18 lines
498 B
Diff
18 lines
498 B
Diff
|
|
Fix a buffer overflow bug. See
|
||
|
|
https://github.com/LibRaw/LibRaw/commit/89d065424f09b788f443734d44857289489ca9e2
|
||
|
|
|
||
|
|
--- a/dcraw.cc
|
||
|
|
+++ b/dcraw.cc
|
||
|
|
@@ -3013,7 +3013,10 @@
|
||
|
|
diff = diff ? -diff : 0x80;
|
||
|
|
if (ftell(ifp) + 12 >= (int) seg[1][1])
|
||
|
|
diff = 0;
|
||
|
|
- raw_image[pix] = pred[pix & 1] += diff;
|
||
|
|
+ if(pix>=raw_width*raw_height)
|
||
|
|
+ derror();
|
||
|
|
+ else
|
||
|
|
+ raw_image[pix] = pred[pix & 1] += diff;
|
||
|
|
if (!(pix & 1) && HOLE(pix / raw_width)) pix += 2;
|
||
|
|
}
|
||
|
|
maximum = 0xff;
|