[libpng15] Revised test for validity of "num_unknowns" to eliminate compiler
warnings.
diff --git a/ANNOUNCE b/ANNOUNCE
index 2c6c41c..25f8fdf 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -81,7 +81,7 @@
No changes.
Version 1.5.14rc02 [January 17, 2013]
- Change info_ptr->unknown_chunks_num to type png_uint_32
+ Revised test for validity of "num_unknowns" to eliminate compiler warnings.
===========================================================================
NOTICE November 17, 2012:
diff --git a/CHANGES b/CHANGES
index 87fbfda..5f3446f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3974,7 +3974,7 @@
No changes.
Version 1.5.14rc02 [January 17, 2013]
- Change info_ptr->unknown_chunks_num to type png_uint_32
+ Revised test for validity of "num_unknowns" to eliminate compiler warnings.
===========================================================================
NOTICE November 17, 2012:
diff --git a/pnginfo.h b/pnginfo.h
index 2c266e3..a33bfab 100644
--- a/pnginfo.h
+++ b/pnginfo.h
@@ -228,7 +228,7 @@
defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
/* Storage for unknown chunks that the library doesn't recognize. */
png_unknown_chunkp unknown_chunks;
- png_uint_32 unknown_chunks_num;
+ int unknown_chunks_num;
#endif
#ifdef PNG_iCCP_SUPPORTED
diff --git a/pngset.c b/pngset.c
index 6f645b4..1c9891b 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1040,9 +1040,10 @@
return;
if (num_unknowns < 0 ||
- num_unknowns >= INT_MAX-info_ptr->unknown_chunks_num ||
- num_unknowns >= PNG_SIZE_MAX/png_sizeof(png_unknown_chunk)
- - info_ptr->unknown_chunks_num)
+ num_unknowns > INT_MAX-info_ptr->unknown_chunks_num ||
+ (unsigned int)/*SAFE*/(num_unknowns +/*SAFE*/
+ info_ptr->unknown_chunks_num) >=
+ PNG_SIZE_MAX/png_sizeof(png_unknown_chunk))
np=NULL;
else