diff --git a/ANNOUNCE b/ANNOUNCE index 2c6c41c17..25f8fdf14 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -81,7 +81,7 @@ Version 1.5.14rc01 [January 17, 2013] 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 87fbfda97..5f3446ff6 100644 --- a/CHANGES +++ b/CHANGES @@ -3974,7 +3974,7 @@ Version 1.5.14rc01 [January 17, 2013] 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 2c266e30a..a33bfab06 100644 --- a/pnginfo.h +++ b/pnginfo.h @@ -228,7 +228,7 @@ defined(PNG_READ_BACKGROUND_SUPPORTED) 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 6f645b42c..1c9891bd3 100644 --- a/pngset.c +++ b/pngset.c @@ -1040,9 +1040,10 @@ png_set_unknown_chunks(png_structp png_ptr, 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