From 88c20ada0657337863c5aae5a852c86473203bfb Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Fri, 20 Sep 2013 14:30:16 -0500 Subject: [PATCH] [libpng17] Reverted the change to unknown handling #defines; the change breaks 'NOREAD' builds. --- ANNOUNCE | 6 ++++-- CHANGES | 4 +++- png.c | 8 ++++---- pngpriv.h | 6 ++++-- pngrutil.c | 8 +++++--- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index c5b087308..3750b5250 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.7.0beta19 - September 16, 2013 +Libpng 1.7.0beta19 - September 20, 2013 This is not intended to be a public release. It will be replaced within a few weeks by a public version or by another test version. @@ -357,7 +357,9 @@ Version 1.7.0beta18 [September 16, 2013] prototype, definition, and usage. Made it depend on PNG_HANDLE_AS_UNKNOWN_SUPPORTED everywhere. -Version 1.7.0beta19 [September 16, 2013] +Version 1.7.0beta19 [September 20, 2013] + Reverted the change to unknown handling #defines; the change breaks 'NOREAD' + builds. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index 59865fe8e..7b5f89038 100644 --- a/CHANGES +++ b/CHANGES @@ -4646,7 +4646,9 @@ Version 1.7.0beta18 [September 16, 2013] prototype, definition, and usage. Made it depend on PNG_HANDLE_AS_UNKNOWN_SUPPORTED everywhere. -Version 1.7.0beta19 [September 16, 2013] +Version 1.7.0beta19 [September 20, 2013] + Reverted the change to unknown handling #defines; the change breaks 'NOREAD' + builds. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/png.c b/png.c index 6f9769531..0e9b0ea34 100644 --- a/png.c +++ b/png.c @@ -691,13 +691,13 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.7.0beta19 - September 16, 2013" PNG_STRING_NEWLINE \ + "libpng version 1.7.0beta19 - September 20, 2013" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2013 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE; # else - return "libpng version 1.7.0beta19 - September 16, 2013\ + return "libpng version 1.7.0beta19 - September 20, 2013\ Copyright (c) 1998-2013 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; @@ -778,7 +778,7 @@ png_handle_as_unknown(png_const_structrp png_ptr, png_const_bytep chunk_name) return PNG_HANDLE_CHUNK_AS_DEFAULT; } -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED int /* PRIVATE */ png_chunk_unknown_handling(png_const_structrp png_ptr, png_uint_32 chunk_name) { @@ -787,7 +787,7 @@ png_chunk_unknown_handling(png_const_structrp png_ptr, png_uint_32 chunk_name) PNG_CSTRING_FROM_CHUNK(chunk_string, chunk_name); return png_handle_as_unknown(png_ptr, chunk_string); } -#endif /* HANDLE_AS_UNKNOWN */ +#endif /* READ_UNKNOWN_CHUNKS */ #endif /* SET_UNKNOWN_CHUNKS */ /* This function was added to libpng-1.0.7 */ diff --git a/pngpriv.h b/pngpriv.h index 9597d6159..3f0766cd6 100644 --- a/pngpriv.h +++ b/pngpriv.h @@ -1343,13 +1343,15 @@ PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr, * just skips the chunk or errors out if it is critical. */ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED PNG_INTERNAL_FUNCTION(int,png_chunk_unknown_handling, (png_const_structrp png_ptr, png_uint_32 chunk_name),PNG_EMPTY); /* Exactly as the API png_handle_as_unknown() except that the argument is a * 32-bit chunk name, not a string. */ -#endif /* PNG_HANDLE_AS_UNKNOWN_SUPPORTED */ +#endif +#endif /* PNG_READ_UNKNOWN_CHUNKS_SUPPORTED */ #endif /* PNG_READ_SUPPORTED */ /* Handle the transformations for reading and writing */ diff --git a/pngrutil.c b/pngrutil.c index 73dd3e840..aefbf36c1 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -2746,6 +2746,7 @@ png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, png_debug(1, "in png_handle_unknown"); +#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED /* NOTE: this code is based on the code in libpng-1.4.12 except for fixing * the bug which meant that setting a non-default behavior for a specific * chunk would be ignored (the default was always used unless a user @@ -2758,14 +2759,15 @@ png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, * function. */ # ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - keep = png_chunk_unknown_handling(png_ptr, png_ptr->chunk_name); +# ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED + keep = png_chunk_unknown_handling(png_ptr, png_ptr->chunk_name); +# endif # endif /* One of the following methods will read the chunk or skip it (at least one * of these is always defined because this is the only way to switch on * PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) */ -#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED # ifdef PNG_READ_USER_CHUNKS_SUPPORTED /* The user callback takes precedence over the chunk keep value, but the * keep value is still required to validate a save of a critical chunk. @@ -2851,7 +2853,7 @@ png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, png_crc_finish(png_ptr, length); } -# endif /* PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED */ +# endif # ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED /* Now store the chunk in the chunk list if appropriate, and if the limits