diff --git a/ANNOUNCE b/ANNOUNCE index d58faa837..9c63dcfe8 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.5.16beta05 - May 2, 2013 +Libpng 1.6.3beta05 - May 7, 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. @@ -9,44 +9,48 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - 1.5.16beta05.tar.xz (LZMA-compressed, recommended) - 1.5.16beta05.tar.gz - 1.5.16beta05.tar.bz2 + 1.6.3beta05.tar.xz (LZMA-compressed, recommended) + 1.6.3beta05.tar.gz Source files with CRLF line endings (for Windows), without the "configure" script - lp1516b05.7z (LZMA-compressed, recommended) - lp1516b05.zip + lp163b05.7z (LZMA-compressed, recommended) + lp163b05.zip Other information: - 1.5.16beta05-README.txt - 1.5.16beta05-LICENSE.txt + 1.6.3beta05-README.txt + 1.6.3beta05-LICENSE.txt -Changes since the last public release (1.5.15): +Changes since the last public release (1.6.2): -Version 1.5.16beta01 [April 25, 2013] - Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c - (Flavio Medeiros). - Revised stack marking in arm/filter_neon.S and configure.ac +Version 1.6.3beta01 [April 25, 2013] + Revised stack marking in arm/filter_neon.S and configure.ac. Ensure that NEON filter stuff is completely disabled when switched 'off'. Previously the ARM NEON specific files were still built if the option was switched 'off' as opposed to being explicitly disabled. - Avoid a compiler warning about unused png_ptr in translate_gamma_flags() -Version 1.5.16beta02 [April 26, 2013] - Revise pngtest.c to skip tests of unsupported features. - Regenerated configure files. - -Version 1.5.16beta03 [April 26, 2013] +Version 1.6.3beta02 [April 26, 2013] Test for 'arm*' not just 'arm' in the host_cpu configure variable. + Rebuilt the configure scripts. -Version 1.5.16beta04 [May 1, 2013] +Version 1.6.3beta03 [April 30, 2013] Expanded manual paragraph about writing private chunks, particularly the need to call png_set_keep_unknown_chunks() when writing them. + Avoid dereferencing NULL pointer possibly returned from + png_create_write_struct() (Andrew Church). -Version 1.5.16beta05 [May 2, 2013] +Version 1.6.3beta04 [May 6, 2013] + Calculate our own zlib windowBits when decoding rather than trusting the + CMF bytes in the PNG datastream. + +Version 1.6.3beta05 [May 7, 2013] + Choose to use windowBits==15 or the zlib header setting via the + benign-errors setting. If benign errors are allowed, then ignore + the windowBits setting in the zlib header. + Zlib-1.2.8 and earlier don't allow us to decrease the windowBits, so + undid the improvement in beta04. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index b02cce152..662432d44 100644 --- a/CHANGES +++ b/CHANGES @@ -4528,10 +4528,12 @@ Version 1.6.3beta04 [May 6, 2013] Calculate our own zlib windowBits when decoding rather than trusting the CMF bytes in the PNG datastream. -Version 1.6.3beta05 [May 6, 2013] - Choose to use our calculated windowBits or the zlib header setting via - the benign-errors setting. If benign errors are allowed, then ignore +Version 1.6.3beta05 [May 7, 2013] + Choose to use windowBits==15 or the zlib header setting via the + benign-errors setting. If benign errors are allowed, then ignore the windowBits setting in the zlib header. + Zlib-1.2.8 and earlier don't allow us to decrease the windowBits, so + undid the improvement in beta04. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/pngrutil.c b/pngrutil.c index 62c66945a..79898ea53 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -4163,7 +4163,8 @@ png_read_finish_row(png_structrp png_ptr) } #endif /* PNG_SEQUENTIAL_READ_SUPPORTED */ -#ifdef PNG_READ_OPTIMIZE_WINDOWBITS_SUPPORTED +#ifdef PNG_READ_OPTIMIZE_WINDOWBITS_SUPPORTED +#if ZLIB_VERNUM > 0x1280 /* This is the code to to select a windowBits value to match the smallest * possible sliding window needed to contain the entire uncompressed image. */ @@ -4230,6 +4231,7 @@ png_read_image_size(png_structrp png_ptr) return 0xffffffffU; } +#endif /* ZLIB_VERNUM */ #endif /* PNG_READ_OPTIMIZE_WINDOWBITS_SUPPORTED */ void /* PRIVATE */ @@ -4519,17 +4521,24 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) #ifdef PNG_READ_OPTIMIZE_WINDOWBITS_SUPPORTED /* To do in libpng17: get windowBits from the CMF bytes and select the * smaller of that and the required_window_bits. Requires a one-byte - * lookahead into the first IDAT chunk data. + * lookahead into the first IDAT chunk data, and requires actually + * injecting the revised CMF bytes into the datastream before reading. */ { +#if ZLIB_VERNUM < 0x1290 unsigned int windowBits; +#endif /* ZLIB_VERNUM */ if (png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN) { +#if ZLIB_VERNUM < 0x1290 + windowBits=15; +#else /* Compute required windowBits from the image size, pixel size, and * interlacing setting. */ windowBits=required_window_bits(png_read_image_size(png_ptr)); +#endif /* ZLIB_VERNUM */ } else