[devel] Revised png_check_IHDR()

to eliminate bogus complaint about filter_type.
This commit is contained in:
Glenn Randers-Pehrson 2009-09-25 11:45:42 -05:00
parent 6564abbf26
commit 7ec330ddeb
4 changed files with 28 additions and 17 deletions

View File

@ -558,11 +558,14 @@ version 1.4.0beta81 [September 23, 2009]
Changed all "#if [!]defined(X)" to "if[n]def X" where possible. Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
Eliminated unused png_ptr->row_buf_size Eliminated unused png_ptr->row_buf_size
version 1.4.0beta82 [September 25, 2009] version 1.4.0beta82 [September 24, 2009]
Moved redundant IHDR checking into new png_check_IHDR() in png.c Moved redundant IHDR checking into new png_check_IHDR() in png.c
and report all errors found in the IHDR data. and report all errors found in the IHDR data.
Eliminated useless call to png_check_cHRM() from pngset.c Eliminated useless call to png_check_cHRM() from pngset.c
version 1.4.0beta83 [September 25, 2009]
Revised png_check_IHDR() to eliminate bogus complaint about filter_type.
version 1.4.0betaN [future] version 1.4.0betaN [future]
Build shared libraries with -lz and sometimes -lm. Build shared libraries with -lz and sometimes -lm.

View File

@ -2244,11 +2244,14 @@ version 1.4.0beta81 [September 23, 2009]
Changed all "#if [!]defined(X)" to "if[n]def X" where possible. Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
Eliminated unused png_ptr->row_buf_size Eliminated unused png_ptr->row_buf_size
version 1.4.0beta82 [September 25, 2009] version 1.4.0beta82 [September 24, 2009]
Moved redundant IHDR checking into new png_check_IHDR() in png.c Moved redundant IHDR checking into new png_check_IHDR() in png.c
and report all errors found in the IHDR data. and report all errors found in the IHDR data.
Eliminated useless call to png_check_cHRM() from pngset.c Eliminated useless call to png_check_cHRM() from pngset.c
version 1.4.0beta83 [September 25, 2009]
Revised png_check_IHDR() to eliminate bogus complaint about filter_type.
version 1.4.0betaN [future] version 1.4.0betaN [future]
Build shared libraries with -lz and sometimes -lm. Build shared libraries with -lz and sometimes -lm.

5
png.c
View File

@ -892,12 +892,17 @@ png_check_IHDR(png_structp png_ptr,
((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) && ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) &&
(color_type == PNG_COLOR_TYPE_RGB || (color_type == PNG_COLOR_TYPE_RGB ||
color_type == PNG_COLOR_TYPE_RGB_ALPHA))) color_type == PNG_COLOR_TYPE_RGB_ALPHA)))
{
png_warning(png_ptr, "Unknown filter method in IHDR"); png_warning(png_ptr, "Unknown filter method in IHDR");
error = 1; error = 1;
} }
if (png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) if (png_ptr->mode & PNG_HAVE_PNG_SIGNATURE)
{
png_warning(png_ptr, "Invalid filter method in IHDR"); png_warning(png_ptr, "Invalid filter method in IHDR");
error = 1;
}
}
#else #else
if (filter_type != PNG_FILTER_TYPE_BASE) if (filter_type != PNG_FILTER_TYPE_BASE)

View File

@ -817,20 +817,20 @@ PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
png_fixed_point int_blue_y)); png_fixed_point int_blue_y));
#endif #endif
#ifdef PNG_cHRM_SUPPORTED
#ifdef PNG_CHECK_cHRM_SUPPORTED
/* Added at libpng version 1.2.34 and 1.4.0 */
PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2,
unsigned long *hi_product, unsigned long *lo_product));
#endif
#endif
/* Added at libpng version 1.4.0 */ /* Added at libpng version 1.4.0 */
PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr, PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr,
png_uint_32 width, png_uint_32 height, int bit_depth, png_uint_32 width, png_uint_32 height, int bit_depth,
int color_type, int interlace_type, int compression_type, int color_type, int interlace_type, int compression_type,
int filter_type)); int filter_type));
#ifdef PNG_cHRM_SUPPORTED
#ifdef PNG_CHECK_cHRM_SUPPORTED
/* Added at libpng version 1.2.34 and 1.4.0 */
PNG_EXTERN void png_64bit_product (long v1, long v2, unsigned long *hi_product,
unsigned long *lo_product);
#endif
#endif
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */ /* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
#ifdef __cplusplus #ifdef __cplusplus