Author: post
Date: 2010-08-04 22:11:25 +0200 (Wed, 04 Aug 2010)
New Revision: 3483
Modified:
trunk/librawstudio/rs-rawfile.c
trunk/plugins/meta-tiff/tiff-meta.c
Log:
Fix uninitilized values, and check values for rational values (Thanks Edouard!)
Modified: trunk/librawstudio/rs-rawfile.c
===================================================================
--- trunk/librawstudio/rs-rawfile.c 2010-08-01 17:41:41 UTC (rev 3482)
+++ trunk/librawstudio/rs-rawfile.c 2010-08-04 20:11:25 UTC (rev 3483)
@@ -149,8 +149,10 @@
return(FALSE);
guint counter, divisor;
- raw_get_uint(rawfile, pos, &counter);
- raw_get_uint(rawfile, pos+4, &divisor);
+ if (!raw_get_uint(rawfile, pos, &counter))
+ return FALSE;
+ if (!raw_get_uint(rawfile, pos+4, &divisor))
+ return FALSE;
if (divisor == 0)
return(FALSE);
Modified: trunk/plugins/meta-tiff/tiff-meta.c
===================================================================
--- trunk/plugins/meta-tiff/tiff-meta.c 2010-08-01 17:41:41 UTC (rev 3482)
+++ trunk/plugins/meta-tiff/tiff-meta.c 2010-08-04 20:11:25 UTC (rev 3483)
@@ -109,9 +109,13 @@
get_rational(RAWFILE *rawfile, guint offset)
{
guint uint1=0, uint2=1;
- raw_get_uint(rawfile, offset, &uint1);
- raw_get_uint(rawfile, offset+4, &uint2);
+ if (!raw_get_uint(rawfile, offset, &uint1))
+ return 0;
+ if (!raw_get_uint(rawfile, offset+4, &uint2))
+ return 0;
+ if (uint2 == 0)
+ return 0;
return ((gdouble) uint1) / ((gdouble) uint2);
}
@@ -119,7 +123,6 @@
read_ifd(RAWFILE *rawfile, guint offset, struct IFD *ifd)
{
/* guint size = 0; */
- guint uint1, uint2;
raw_get_ushort(rawfile, offset, &ifd->tag);
raw_get_ushort(rawfile, offset+2, &ifd->type);
@@ -152,10 +155,9 @@
ifd->value = ifd->value_uint;
break;
case TIFF_FIELD_TYPE_RATIONAL:
- raw_get_uint(rawfile, ifd->value_offset,
&uint1);
- raw_get_uint(rawfile, ifd->value_offset+4,
&uint2);
- ifd->value_rational = ((gdouble) uint1) /
((gdouble) uint2);
+ ifd->value_rational = get_rational(rawfile,
ifd->value_offset);
ifd->value = ifd->value_rational;
+ break;
default:
/* FIXME: Implement types from TIFF 6.0 */
break;
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit