Update of /cvsroot/ufraw/ufraw
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv24511

Modified Files:
        ufraw_ufraw.c 
Log Message:
Check for overflows in ufraw_scale_raw(). Apparently the assumptions that
there will be no overflow was wrong, at least for Foveon raw files.


Index: ufraw_ufraw.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ufraw.c,v
retrieving revision 1.224
retrieving revision 1.225
diff -u -d -r1.224 -r1.225
--- ufraw_ufraw.c       1 Dec 2009 05:40:58 -0000       1.224
+++ ufraw_ufraw.c       5 Dec 2009 02:38:05 -0000       1.225
@@ -585,11 +585,12 @@
     if (scale) {
        end = (guint16 *)(raw->raw.image + raw->raw.width * raw->raw.height);
        /* OpenMP overhead appears to be too large in this case */
-       /* We are assuming here that there will be no overflow since all
-        * pixel values should be below rgbMax. dcraw's wavelet_denoise()
-        * makes the same assumption, so it seems like a safe bet. */
+       int max = 0x10000 >> scale;
        for (p = (guint16 *)raw->raw.image; p < end; ++p)
-           *p <<= scale;
+           if (*p < max)
+               *p <<= scale;
+           else
+               *p = 0xffff;
        raw->black <<= scale;
     }
     return 1 << scale;


------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to