Update of /cvsroot/ufraw/ufraw
In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv21387
Modified Files:
ufraw_ufraw.c
Log Message:
Fix possible buffer overflow in latest commit.
Index: ufraw_ufraw.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ufraw.c,v
retrieving revision 1.280
retrieving revision 1.281
diff -u -d -r1.280 -r1.281
--- ufraw_ufraw.c 30 Aug 2014 03:30:37 -0000 1.280
+++ ufraw_ufraw.c 30 Aug 2014 04:30:08 -0000 1.281
@@ -1964,19 +1964,20 @@
* rgbWB[3] = rgb_cam[3][4] * preMul[4] * camWhite[4]
* Now we want to make it white (1,1,1), so we replace preMul
* with chanMul, which is defined as:
- * chanMul[4][4] = cam_rgb[4][3] * (1/rgbWB[3][3]) * rgb_cam[3][4]
- * * preMul[4][4]
+ * chanMul[4] = cam_rgb[4][3] * (1/rgbWB[3][3]) * rgb_cam[3][4]
+ * * preMul[4]
* We "upgraded" preMul, chanMul and rgbWB to diagonal matrices.
* This allows for the manipulation:
* (1/chanMul)[4][4] = (1/preMul)[4][4] * cam_rgb[4][3] * rgbWB[3][3]
* * rgb_cam[3][4]
* We use the fact that rgb_cam[3][4] * (1,1,1,1) = (1,1,1) and get:
- * (1/chanMul)[4] = (1/preMul)[4][4] * cam_rgb[4][3] * rgbWB[3]
+ * (1/chanMul)[4] = (1/preMul)[4] * cam_rgb[4][3] * rgbWB[3]
*/
if (uf->raw_color) {
/* If there is no color matrix it is simple */
- for (c = 0; c < uf->colors; c++)
- chanMulArray[c] = raw->pre_mul[c] / rgbWB[c];
+ if (uf->colors > 1)
+ for (c = 0; c < 3; c++)
+ chanMulArray[c] = raw->pre_mul[c] / rgbWB[c];
ufnumber_array_set(chanMul, chanMulArray);
} else {
for (c = 0; c < uf->colors; c++) {
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
ufraw-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs