jdk/src/java.desktop/share/native/libsplashscreen/libpng/CHANGES
changeset 29913 95258013e132
parent 25859 3317bb8137f4
child 35296 659e92aaf7f4
equal deleted inserted replaced
29912:4478c08657e0 29913:95258013e132
     1 /*
     1 /*
     2  * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
    26 #if 0
       
    27 libpng_changes(){ /*
       
    28 CHANGES - changes for libpng
    26 CHANGES - changes for libpng
    29 
    27 
    30 Version 0.2
    28 Version 0.2
    31   added reader into png.h
    29   added reader into png.h
    32   fixed small problems in stub file
    30   fixed small problems in stub file
   203 
   201 
   204 Version 0.96 [May, 1997]
   202 Version 0.96 [May, 1997]
   205   Fixed serious bug with < 8bpp images introduced in 0.95
   203   Fixed serious bug with < 8bpp images introduced in 0.95
   206   Fixed 256-color transparency bug (Greg Roelofs)
   204   Fixed 256-color transparency bug (Greg Roelofs)
   207   Fixed up documentation (Greg Roelofs, Laszlo Nyul)
   205   Fixed up documentation (Greg Roelofs, Laszlo Nyul)
   208   Fixed "error" in pngconf.h for Linux setjmp() behaviour
   206   Fixed "error" in pngconf.h for Linux setjmp() behavior
   209   Fixed DOS medium model support (Tim Wegner)
   207   Fixed DOS medium model support (Tim Wegner)
   210   Fixed png_check_keyword() for case with error in static string text
   208   Fixed png_check_keyword() for case with error in static string text
   211   Added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
   209   Added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
   212   Added typecasts to quiet compiler errors
   210   Added typecasts to quiet compiler errors
   213   Added more debugging info
   211   Added more debugging info
   220   Fixed bug in gamma handling of 4-bit grayscale
   218   Fixed bug in gamma handling of 4-bit grayscale
   221   Added 2-bit grayscale gamma handling (Glenn R-P)
   219   Added 2-bit grayscale gamma handling (Glenn R-P)
   222   Added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
   220   Added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
   223   Minor corrections in libpng.txt
   221   Minor corrections in libpng.txt
   224   Added simple sRGB support (Glenn R-P)
   222   Added simple sRGB support (Glenn R-P)
   225   Easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
   223   Easier conditional compiling, e.g.,
       
   224     define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
   226     all configurable options can be selected from command-line instead
   225     all configurable options can be selected from command-line instead
   227     of having to edit pngconf.h (Glenn R-P)
   226     of having to edit pngconf.h (Glenn R-P)
   228   Fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
   227   Fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
   229   Added more conditions for png_do_background, to avoid changing
   228   Added more conditions for png_do_background, to avoid changing
   230     black pixels to background when a background is supplied and
   229     black pixels to background when a background is supplied and
   231     no pixels are transparent
   230     no pixels are transparent
   232   Repaired PNG_NO_STDIO behaviour
   231   Repaired PNG_NO_STDIO behavior
   233   Tested NODIV support and made it default behaviour (Greg Roelofs)
   232   Tested NODIV support and made it default behavior (Greg Roelofs)
   234   Added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
   233   Added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
   235   Regularized version numbering scheme and bumped shared-library major
   234   Regularized version numbering scheme and bumped shared-library major
   236      version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
   235     version number to 2 to avoid problems with libpng 0.89 apps
       
   236     (Greg Roelofs)
   237 
   237 
   238 Version 0.98 [January, 1998]
   238 Version 0.98 [January, 1998]
   239   Cleaned up some typos in libpng.txt and in code documentation
   239   Cleaned up some typos in libpng.txt and in code documentation
   240   Fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
   240   Fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
   241   Cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
   241   Cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
  1801 
  1801 
  1802 Version 1.2.13beta1 [October 2, 2006]
  1802 Version 1.2.13beta1 [October 2, 2006]
  1803   Removed AC_FUNC_MALLOC from configure.ac
  1803   Removed AC_FUNC_MALLOC from configure.ac
  1804   Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
  1804   Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
  1805   Change "logical" to "bitwise" throughout documentation.
  1805   Change "logical" to "bitwise" throughout documentation.
  1806   Detect and fix attempt to write wrong iCCP profile length.
  1806   Detect and fix attempt to write wrong iCCP profile length (CVE-2006-7244)
  1807 
  1807 
  1808 Version 1.0.21, 1.2.13 [November 14, 2006]
  1808 Version 1.0.21, 1.2.13 [November 14, 2006]
  1809   Fix potential buffer overflow in sPLT chunk handler.
  1809   Fix potential buffer overflow in sPLT chunk handler.
  1810   Fix Makefile.am to not try to link to noexistent files.
  1810   Fix Makefile.am to not try to link to noexistent files.
  1811   Check all exported functions for NULL png_ptr.
  1811   Check all exported functions for NULL png_ptr.
  2124 Version 1.4.0beta24 [July 25, 2008]
  2124 Version 1.4.0beta24 [July 25, 2008]
  2125   Change all remaining "chunkdata" to "png_ptr->chunkdata" in
  2125   Change all remaining "chunkdata" to "png_ptr->chunkdata" in
  2126     png_decompress_chunk(), and remove "chunkdata" from parameter list.
  2126     png_decompress_chunk(), and remove "chunkdata" from parameter list.
  2127   Put a call to png_check_chunk_name() in png_read_chunk_header().
  2127   Put a call to png_check_chunk_name() in png_read_chunk_header().
  2128   Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte.
  2128   Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte.
  2129   Removed two calls to png_check_chunk_name() occurring later in the process.
  2129   Removed two calls to png_check_chunk_name() occuring later in the process.
  2130   Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
  2130   Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
  2131 
  2131 
  2132 Version 1.4.0beta25 [July 30, 2008]
  2132 Version 1.4.0beta25 [July 30, 2008]
  2133   Added a call to png_check_chunk_name() in pngpread.c
  2133   Added a call to png_check_chunk_name() in pngpread.c
  2134   Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte.
  2134   Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte.
  2384   Replaced *.tar.lzma with *.tar.xz in distribution.  Get the xz codec
  2384   Replaced *.tar.lzma with *.tar.xz in distribution.  Get the xz codec
  2385     from <http://tukaani.org/xz>.
  2385     from <http://tukaani.org/xz>.
  2386 
  2386 
  2387 Version 1.4.0beta73 [August 1, 2009]
  2387 Version 1.4.0beta73 [August 1, 2009]
  2388   Reject attempt to write iCCP chunk with negative embedded profile length
  2388   Reject attempt to write iCCP chunk with negative embedded profile length
  2389     (JD Chen)
  2389     (JD Chen) (CVE-2009-5063).
  2390 
  2390 
  2391 Version 1.4.0beta74 [August 8, 2009]
  2391 Version 1.4.0beta74 [August 8, 2009]
  2392   Changed png_ptr and info_ptr member "trans" to "trans_alpha".
  2392   Changed png_ptr and info_ptr member "trans" to "trans_alpha".
  2393 
  2393 
  2394 Version 1.4.0beta75 [August 21, 2009]
  2394 Version 1.4.0beta75 [August 21, 2009]
  3172   Added a note in the manual that the type of the iCCP profile was changed
  3172   Added a note in the manual that the type of the iCCP profile was changed
  3173     from png_charpp to png_bytepp in png_get_iCCP().  This change happened
  3173     from png_charpp to png_bytepp in png_get_iCCP().  This change happened
  3174     in version 1.5.0beta36 but is not noted in the CHANGES.  Similarly,
  3174     in version 1.5.0beta36 but is not noted in the CHANGES.  Similarly,
  3175     it was changed from png_charpp to png_const_bytepp in png_set_iCCP().
  3175     it was changed from png_charpp to png_const_bytepp in png_set_iCCP().
  3176   Ensure that png_rgb_to_gray ignores palette mapped images, if libpng
  3176   Ensure that png_rgb_to_gray ignores palette mapped images, if libpng
  3177     internally happens to call it with one.
  3177     internally happens to call it with one, and fixed a failure to handle
  3178   Fixed a failure to handle palette mapped images correctly.
  3178     palette mapped images correctly.  This fixes CVE-2690.
  3179 
  3179 
  3180 Version 1.5.1beta02 [January 14, 2011]
  3180 Version 1.5.1beta02 [January 14, 2011]
  3181   Fixed a bug in handling of interlaced images (bero at arklinux.org).
  3181   Fixed a bug in handling of interlaced images (bero at arklinux.org).
  3182   Updated CMakeLists.txt (Clifford Yapp)
  3182   Updated CMakeLists.txt (Clifford Yapp)
  3183 
  3183 
  3312 Version 1.5.2 [March 31, 2011]
  3312 Version 1.5.2 [March 31, 2011]
  3313   No changes.
  3313   No changes.
  3314 
  3314 
  3315 Version 1.5.3beta01 [April 1, 2011]
  3315 Version 1.5.3beta01 [April 1, 2011]
  3316   Re-initialize the zlib compressor before compressing non-IDAT chunks.
  3316   Re-initialize the zlib compressor before compressing non-IDAT chunks.
  3317   Added API functions to set parameters for zlib compression of non-IDAT
  3317   Added API functions (png_set_text_compression_level() and four others) to
  3318     chunks.
  3318     set parameters for zlib compression of non-IDAT chunks.
  3319 
  3319 
  3320 Version 1.5.3beta02 [April 3, 2011]
  3320 Version 1.5.3beta02 [April 3, 2011]
  3321   Updated scripts/symbols.def with new API functions.
  3321   Updated scripts/symbols.def with new API functions.
  3322   Only compile the new zlib re-initializing code when text or iCCP is
  3322   Only compile the new zlib re-initializing code when text or iCCP is
  3323     supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro.
  3323     supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro.
  3370     internal APIs to allow png_warning messages to have parameters without
  3370     internal APIs to allow png_warning messages to have parameters without
  3371     requiring the host OS to implement snprintf.  As a side effect the
  3371     requiring the host OS to implement snprintf.  As a side effect the
  3372     dependency of the tIME-supporting RFC1132 code on stdio is removed and
  3372     dependency of the tIME-supporting RFC1132 code on stdio is removed and
  3373     PNG_NO_WARNINGS does actually work now.
  3373     PNG_NO_WARNINGS does actually work now.
  3374   Pass "" instead of '\0' to png_default_error() in png_err().  This mistake
  3374   Pass "" instead of '\0' to png_default_error() in png_err().  This mistake
  3375     was introduced in libpng-1.2.20beta01.
  3375     was introduced in libpng-1.2.20beta01.  This fixes CVE-2011-2691.
  3376   Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte
  3376   Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte
  3377     optimization configureable.
  3377     optimization configureable.
  3378   IDAT compression failed if preceded by a compressed text chunk (bug
  3378   IDAT compression failed if preceded by a compressed text chunk (bug
  3379     introduced in libpng-1.5.3beta01-02).  This was because the attempt to
  3379     introduced in libpng-1.5.3beta01-02).  This was because the attempt to
  3380     reset the zlib stream in png_write_IDAT happened after the first IDAT
  3380     reset the zlib stream in png_write_IDAT happened after the first IDAT
  3401 Version 1.5.3beta08 [May 16, 2011]
  3401 Version 1.5.3beta08 [May 16, 2011]
  3402   Improved "pngvalid --speed" to exclude more of pngvalid from the time.
  3402   Improved "pngvalid --speed" to exclude more of pngvalid from the time.
  3403   Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt
  3403   Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt
  3404   The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative
  3404   The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative
  3405     parameters are supplied by the caller), while in the absence of cHRM
  3405     parameters are supplied by the caller), while in the absence of cHRM
  3406     sRGB/Rec 709 values are still used.
  3406     sRGB/Rec 709 values are still used.  This introduced a divide-by-zero
       
  3407     bug in png_handle_cHRM().
  3407   The bKGD chunk no longer overwrites the background value set by
  3408   The bKGD chunk no longer overwrites the background value set by
  3408     png_set_background(), allowing the latter to be used before the file
  3409     png_set_background(), allowing the latter to be used before the file
  3409     header is read. It never performed any useful function to override
  3410     header is read. It never performed any useful function to override
  3410     the default anyway.
  3411     the default anyway.
  3411   Added memory overwrite and palette image checks to pngvalid.c
  3412   Added memory overwrite and palette image checks to pngvalid.c
  3441 Version 1.5.3rc02 [June 8, 2011]
  3442 Version 1.5.3rc02 [June 8, 2011]
  3442   Fixed uninitialized memory read in png_format_buffer() (Bug report by
  3443   Fixed uninitialized memory read in png_format_buffer() (Bug report by
  3443     Frank Busse, CVE-2011-2501, related to CVE-2004-0421).
  3444     Frank Busse, CVE-2011-2501, related to CVE-2004-0421).
  3444 
  3445 
  3445 Version 1.5.3beta11 [June 11, 2011]
  3446 Version 1.5.3beta11 [June 11, 2011]
  3446   Fixed png_handle_sCAL which is broken in 1.5; added sCAL to pngtest.png
  3447   Fixed png_handle_sCAL which is broken in 1.5. This fixes CVE 2011-2692.
       
  3448   Added sCAL to pngtest.png
  3447   Revised documentation about png_set_user_limits() to say that it also affects
  3449   Revised documentation about png_set_user_limits() to say that it also affects
  3448     png writing.
  3450     png writing.
  3449   Revised handling of png_set_user_limits() so that it can increase the
  3451   Revised handling of png_set_user_limits() so that it can increase the
  3450     limit beyond the PNG_USER_WIDTH|HEIGHT_MAX; previously it could only
  3452     limit beyond the PNG_USER_WIDTH|HEIGHT_MAX; previously it could only
  3451     reduce it.
  3453     reduce it.
  3466     pngvalid to build when ALPHA_MODE is not supported, which is required if
  3468     pngvalid to build when ALPHA_MODE is not supported, which is required if
  3467     it is to build on libpng 1.4.
  3469     it is to build on libpng 1.4.
  3468   Removed string/memory macros that are no longer used and are not
  3470   Removed string/memory macros that are no longer used and are not
  3469     necessarily fully supportable, particularly png_strncpy and png_snprintf.
  3471     necessarily fully supportable, particularly png_strncpy and png_snprintf.
  3470   Added log option to pngvalid.c and attempted to improve gamma messages.
  3472   Added log option to pngvalid.c and attempted to improve gamma messages.
  3471   
  3473 
  3472 Version 1.5.3 [omitted]
  3474 Version 1.5.3 [omitted]
  3473   People found the presence of a beta release following an rc release
  3475   People found the presence of a beta release following an rc release
  3474     to be confusing; therefore we bump the version to libpng-1.5.4beta01
  3476     to be confusing; therefore we bump the version to libpng-1.5.4beta01
  3475     and there will be no libpng-1.5.3 release.
  3477     and there will be no libpng-1.5.3 release.
  3476 
  3478 
  3530 
  3532 
  3531 Version 1.5.4rc01 [June 30, 2011]
  3533 Version 1.5.4rc01 [June 30, 2011]
  3532   Define PNG_ALLOCATED to "restrict" only if MSC_VER >= 1400.
  3534   Define PNG_ALLOCATED to "restrict" only if MSC_VER >= 1400.
  3533 
  3535 
  3534 Version 1.5.4 [July 7, 2011]
  3536 Version 1.5.4 [July 7, 2011]
       
  3537   No changes.
       
  3538 
       
  3539 Version 1.5.5beta01 [July 13, 2011]
       
  3540   Fixed some typos and made other minor changes in the manual.
       
  3541   Updated contrib/pngminus/makefile.std (Samuli Souminen)
       
  3542 
       
  3543 Version 1.5.5beta02 [July 14, 2011]
       
  3544   Revised Makefile.am and Makefile.in to look in the right directory for
       
  3545     pnglibconf.h.prebuilt
       
  3546 
       
  3547 Version 1.5.5beta03 [July 27, 2011]
       
  3548   Enabled compilation with g++ compiler.  This compiler does not recognize
       
  3549     the file extension, so it always compiles with C++ rules.  Made minor
       
  3550     changes to pngrutil.c to cast results where C++ expects it but C does not.
       
  3551   Minor editing of libpng.3 and libpng-manual.txt.
       
  3552 
       
  3553 Version 1.5.5beta04 [July 29, 2011]
       
  3554   Revised CMakeLists.txt (Clifford Yapp)
       
  3555   Updated commentary about the png_rgb_to_gray() default coefficients
       
  3556     in the manual and in pngrtran.c
       
  3557 
       
  3558 Version 1.5.5beta05 [August 17, 2011]
       
  3559   Prevent unexpected API exports from non-libpng DLLs on Windows.  The "_DLL"
       
  3560     is removed from the test of whether a DLL is being built (this erroneously
       
  3561     caused the libpng APIs to be marked as DLL exports in static builds under
       
  3562     Microsoft Visual Studio).  Almost all of the libpng building configuration
       
  3563     is moved from pngconf.h to pngpriv.h, but PNG_DLL_EXPORT remains in
       
  3564     pngconf.h, though, so that it is colocated with the import definition (it
       
  3565     is no longer used anywhere in the installed headers).  The VStudio project
       
  3566     definitions have been cleaned up: "_USRDLL" has been removed from the
       
  3567     static library builds (this was incorrect), and PNG_USE_DLL has been added
       
  3568     to pngvalid to test the functionality (pngtest does not supply it,
       
  3569     deliberately).  The spurious "_EXPORTS" has been removed from the
       
  3570     libpng build (all these errors were a result of copy/paste between project
       
  3571     configurations.)
       
  3572   Added new types and internal functions for CIE RGB end point handling to
       
  3573     pngpriv.h (functions yet to be implemented).
       
  3574 
       
  3575 Version 1.5.5beta06 [August 26, 2011]
       
  3576   Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set in CMakeLists.txt
       
  3577     (Clifford Yap)
       
  3578   Fixes to rgb_to_gray and cHRM XYZ APIs (John Bowler):
       
  3579     The rgb_to_gray code had errors when combined with gamma correction.
       
  3580     Some pixels were treated as true grey when they weren't and such pixels
       
  3581     and true grey ones were not gamma corrected (the original value of the
       
  3582     red component was used instead).  APIs to get and set cHRM using color
       
  3583     space end points have been added and the rgb_to_gray code that defaults
       
  3584     based on cHRM, and the divide-by-zero bug in png_handle_cHRM (CERT
       
  3585     VU#477046, CVE-2011-3328, introduced in 1.5.4) have been corrected.
       
  3586   A considerable number of tests has been added to pngvalid for the
       
  3587     rgb_to_gray transform.
       
  3588   Arithmetic errors in rgb_to_gray whereby the calculated gray value was
       
  3589     truncated to the bit depth rather than rounded have been fixed except in
       
  3590     the 8-bit non-gamma-corrected case (where consistency seems more important
       
  3591     than correctness.)  The code still has considerable inaccuracies in the
       
  3592     8-bit case because 8-bit linear arithmetic is used.
       
  3593 
       
  3594 Version 1.5.5beta07 [September 7, 2011]
       
  3595   Added "$(ARCH)" option to makefile.darwin
       
  3596   Added SunOS support to configure.ac and Makefile.am
       
  3597   Changed png_chunk_benign_error() to png_warning() in png.c, in
       
  3598     png_XYZ_from_xy_checked().
       
  3599 
       
  3600 Version 1.5.5beta08 [September 10, 2011]
       
  3601   Fixed 64-bit compilation errors (gcc). The errors fixed relate
       
  3602     to conditions where types that are 32 bits in the GCC 32-bit
       
  3603     world (uLong and png_size_t) become 64 bits in the 64-bit
       
  3604     world.  This produces potential truncation errors which the
       
  3605     compiler correctly flags.
       
  3606   Relocated new HAVE_SOLARIS_LD definition in configure.ac
       
  3607   Constant changes for 64-bit compatibility (removal of L suffixes). The
       
  3608     16-bit cases still use "L" as we don't have a 16-bit test system.
       
  3609 
       
  3610 Version 1.5.5rc01 [September 15, 2011]
       
  3611   Removed "L" suffixes in pngpriv.h
       
  3612 
       
  3613 Version 1.5.5 [September 22, 2011]
       
  3614   No changes.
       
  3615 
       
  3616 Version 1.5.6beta01 [September 22, 2011]
       
  3617   Fixed some 64-bit type conversion warnings in pngrtran.c
       
  3618   Moved row_info from png_struct to a local variable.
       
  3619   The various interlace mask arrays have been made into arrays of
       
  3620     bytes and made PNG_CONST and static (previously some arrays were
       
  3621     marked PNG_CONST and some weren't).
       
  3622   Additional checks have been added to the transform code to validate the
       
  3623     pixel depths after the transforms on both read and write.
       
  3624   Removed some redundant code from pngwrite.c, in png_destroy_write_struct().
       
  3625   Changed chunk reading/writing code to use png_uint_32 instead of png_byte[4].
       
  3626     This removes the need to allocate temporary strings for chunk names on
       
  3627     the stack in the read/write code.  Unknown chunk handling still uses the
       
  3628     string form because this is exposed in the API.
       
  3629 
       
  3630 Version 1.5.6beta02 [September 26, 2011]
       
  3631   Added a note in the manual the png_read_update_info() must be called only
       
  3632     once with a particular info_ptr.
       
  3633   Fixed a typo in the definition of the new PNG_STRING_FROM_CHUNK(s,c) macro.
       
  3634 
       
  3635 Version 1.5.6beta03 [September 28, 2011]
       
  3636   Revised test-pngtest.sh to report FAIL when pngtest fails.
       
  3637   Added "--strict" option to pngtest, to report FAIL when the failure is
       
  3638     only because the resulting valid files are different.
       
  3639   Revised CMakeLists.txt to work with mingw and removed some material from
       
  3640     CMakeLists.txt that is no longer useful in libpng-1.5.
       
  3641 
       
  3642 Version 1.5.6beta04 [October 5, 2011]
       
  3643   Fixed typo in Makefile.in and Makefile.am ("-M Wl" should be "-M -Wl")."
       
  3644 
       
  3645 Version 1.5.6beta05 [October 12, 2011]
       
  3646   Speed up png_combine_row() for interlaced images. This reduces the generality
       
  3647     of the code, allowing it to be optimized for Adam7 interlace.  The masks
       
  3648     passed to png_combine_row() are now generated internally, avoiding
       
  3649     some code duplication and localizing the interlace handling somewhat.
       
  3650   Align png_struct::row_buf - previously it was always unaligned, caused by
       
  3651     a bug in the code that attempted to align it; the code needs to subtract
       
  3652     one from the pointer to take account of the filter byte prepended to
       
  3653     each row.
       
  3654   Optimized png_combine_row() when rows are aligned. This gains a small
       
  3655     percentage for 16-bit and 32-bit pixels in the typical case where the
       
  3656     output row buffers are appropriately aligned. The optimization was not
       
  3657     previously possible because the png_struct buffer was always misaligned.
       
  3658   Fixed bug in png_write_chunk_header() debug print, introduced in 1.5.6beta01.
       
  3659 
       
  3660 Version 1.5.6beta06 [October 17, 2011]
       
  3661   Removed two redundant tests for unitialized row.
       
  3662   Fixed a relatively harmless memory overwrite in compressed text writing
       
  3663     with a 1 byte zlib buffer.
       
  3664   Add ability to call png_read_update_info multiple times to pngvalid.c.
       
  3665   Fixes for multiple calls to png_read_update_info. These fixes attend to
       
  3666     most of the errors revealed in pngvalid, however doing the gamma work
       
  3667     twice results in inaccuracies that can't be easily fixed.  There is now
       
  3668     a warning in the code if this is going to happen.
       
  3669   Turned on multiple png_read_update_info in pngvalid transform tests.
       
  3670   Prevent libpng from overwriting unused bits at the end of the image when
       
  3671     it is not byte aligned, while reading. Prior to libpng-1.5.6 libpng would
       
  3672     overwrite the partial byte at the end of each row if the row width was not
       
  3673     an exact multiple of 8 bits and the image is not interlaced.
       
  3674 
       
  3675 Version 1.5.6beta07 [October 21, 2011]
       
  3676   Made png_ptr->prev_row an aligned pointer into png_ptr->big_prev_row
       
  3677     (Mans Rullgard).
       
  3678 
       
  3679 Version 1.5.6rc01 [October 26, 2011]
       
  3680   Changed misleading "Missing PLTE before cHRM" warning to "Out of place cHRM"
       
  3681 
       
  3682 Version 1.5.6rc02 [October 27, 2011]
       
  3683   Added LSR() macro to defend against buggy compilers that evaluate non-taken
       
  3684     code branches and complain about out-of-range shifts.
       
  3685 
       
  3686 Version 1.5.6rc03 [October 28, 2011]
       
  3687   Renamed the LSR() macro to PNG_LSR() and added PNG_LSL() macro.
       
  3688   Fixed compiler warnings with Intel and MSYS compilers. The logical shift
       
  3689     fix for Microsoft Visual C is required by other compilers, so this
       
  3690     enables that fix for all compilers when using compile-time constants.
       
  3691     Under MSYS 'byte' is a name declared in a system header file, so we
       
  3692     changed the name of a local variable to avoid the warnings that result.
       
  3693   Added #define PNG_ALIGN_TYPE PNG_ALIGN_NONE to contrib/pngminim/*/pngusr.h
       
  3694 
       
  3695 Version 1.5.6 [November 3, 2011]
       
  3696   No changes.
       
  3697 
       
  3698 Version 1.5.7beta01 [November 4, 2011]
       
  3699   Added support for ARM processor, when decoding all PNG up-filtered rows
       
  3700     and any other-filtered rows with 3 or 4 bytes per pixel (Mans Rullgard).
       
  3701   Fixed bug in pngvalid on early allocation failure; fixed type cast in
       
  3702     pngmem.c; pngvalid would attempt to call png_error() if the allocation
       
  3703     of a png_struct or png_info failed. This would probably have led to a
       
  3704     crash.  The pngmem.c implementation of png_malloc() included a cast
       
  3705     to png_size_t which would fail on large allocations on 16-bit systems.
       
  3706   Fix for the preprocessor of the Intel C compiler. The preprocessor
       
  3707     splits adjacent @ signs with a space; this changes the concatentation
       
  3708     token from @-@-@ to PNG_JOIN; that should work with all compiler
       
  3709     preprocessors.
       
  3710   Paeth filter speed improvements from work by Siarhei Siamashka. This
       
  3711     changes the 'Paeth' reconstruction function to improve the GCC code
       
  3712     generation on x86. The changes are only part of the suggested ones;
       
  3713     just the changes that definitely improve speed and remain simple.
       
  3714     The changes also slightly increase the clarity of the code.
       
  3715 
       
  3716 Version 1.5.7beta02 [November 11, 2011]
       
  3717   Check compression_type parameter in png_get_iCCP and remove spurious
       
  3718     casts. The compression_type parameter is always assigned to, so must
       
  3719     be non-NULL. The cast of the profile length potentially truncated the
       
  3720     value unnecessarily on a 16-bit int system, so the cast of the (byte)
       
  3721     compression type to (int) is specified by ANSI-C anyway.
       
  3722   Fixed FP division by zero in pngvalid.c; the 'test_pixel' code left
       
  3723     the sBIT fields in the test pixel as 0, which resulted in a floating
       
  3724     point division by zero which was irrelevant but causes systems where
       
  3725     FP exceptions cause a crash. Added code to pngvalid to turn on FP
       
  3726     exceptions if the appropriate glibc support is there to ensure this is
       
  3727     tested in the future.
       
  3728   Updated scripts/pnglibconf.mak and scripts/makefile.std to handle the
       
  3729     new PNG_JOIN macro.
       
  3730   Added versioning to pnglibconf.h comments.
       
  3731   Simplified read/write API initial version; basic read/write tested on
       
  3732     a variety of images, limited documentation (in the header file.)
       
  3733   Installed more accurate linear to sRGB conversion tables. The slightly
       
  3734     modified tables reduce the number of 16-bit values that
       
  3735     convert to an off-by-one 8-bit value.  The "makesRGB.c" code that was used
       
  3736     to generate the tables is now in a contrib/sRGBtables sub-directory.
       
  3737 
       
  3738 Version 1.5.7beta03 [November 17, 2011]
       
  3739   Removed PNG_CONST from the sRGB table declarations in pngpriv.h and png.c
       
  3740   Added run-time detection of NEON support.
       
  3741   Added contrib/libtests; includes simplified API test and timing test and
       
  3742     a color conversion utility for rapid checking of failed 'pngstest' results.
       
  3743   Multiple transform bug fixes plus a work-round for double gamma correction.
       
  3744     libpng does not support more than one transform that requires linear data
       
  3745     at once - if this is tried typically the results is double gamma
       
  3746     correction. Since the simplified APIs can need rgb to gray combined with
       
  3747     a compose operation it is necessary to do one of these outside the main
       
  3748     libpng transform code. This check-in also contains fixes to various bugs
       
  3749     in the simplified APIs themselves and to some bugs in compose and rgb to
       
  3750     gray (on palette) itself.
       
  3751   Fixes for C++ compilation using g++ When libpng source is compiled
       
  3752     using g++. The compiler imposes C++ rules on the C source; thus it
       
  3753     is desireable to make the source work with either C or C++ rules
       
  3754     without throwing away useful error information.  This change adds
       
  3755     png_voidcast to allow C semantic (void*) cases or the corresponding
       
  3756     C++ static_cast operation, as appropriate.
       
  3757   Added --noexecstack to assembler file compilation. GCC does not set
       
  3758     this on assembler compilation, even though it does on C compilation.
       
  3759     This creates security issues if assembler code is enabled; the
       
  3760     work-around is to set it by default in the flags for $(CCAS)
       
  3761   Work around compilers that don't support declaration of const data. Some
       
  3762     compilers fault 'extern const' data declarations (because the data is
       
  3763     not initialized); this turns on const-ness only for compilers where
       
  3764     this is known to work.
       
  3765 
       
  3766 Version 1.5.7beta04 [November 17, 2011]
       
  3767   Since the gcc driver does not recognize the --noexecstack flag, we must
       
  3768     use the -Wa prefix to have it passed through to the assembler.
       
  3769     Also removed a duplicate setting of this flag.
       
  3770   Added files that were omitted from the libpng-1.5.7beta03 zip distribution.
       
  3771 
       
  3772 Version 1.5.7beta05 [November 25, 2011]
       
  3773   Removed "zTXt" from warning in generic chunk decompression function.
       
  3774   Validate time settings passed to pngset() and png_convert_to_rfc1123()
       
  3775     (Frank Busse).
       
  3776   Added MINGW support to CMakeLists.txt
       
  3777   Reject invalid compression flag or method when reading the iTXt chunk.
       
  3778   Backed out 'simplified' API changes. The API seems too complex and there
       
  3779     is a lack of consensus or enthusiasm for the proposals.  The API also
       
  3780     reveals significant bugs inside libpng (double gamma correction and the
       
  3781     known bug of being unable to retrieve a corrected palette). It seems
       
  3782     better to wait until the bugs, at least, are corrected.
       
  3783   Moved pngvalid.c into contrib/libtests
       
  3784   Rebuilt Makefile.in, configure, etc., with autoconf-2.68
       
  3785 
       
  3786 Version 1.5.7rc01 [December 1, 2011]
       
  3787   Replaced an "#if" with "#ifdef" in pngrtran.c
       
  3788   Revised #if PNG_DO_BC block in png.c (use #ifdef and add #else)
       
  3789 
       
  3790 Version 1.5.7rc02 [December 5, 2011]
       
  3791   Revised project files and contrib/pngvalid/pngvalid.c to account for
       
  3792     the relocation of pngvalid into contrib/libtests.
       
  3793   Revised pngconf.h to use " __declspec(restrict)" only when MSC_VER >= 1400,
       
  3794     as in libpng-1.5.4.
       
  3795   Put CRLF line endings in the owatcom project files.
       
  3796 
       
  3797 Version 1.5.7rc03 [December 7, 2011]
       
  3798   Updated CMakeLists.txt to account for the relocation of pngvalid.c
       
  3799 
       
  3800 Version 1.5.7 [December 15, 2011]
       
  3801   Minor fixes to pngvalid.c for gcc 4.6.2 compatibility to remove warnings
       
  3802     reported by earlier versions.
       
  3803   Fixed minor memset/sizeof errors in pngvalid.c.
       
  3804 
       
  3805 Version 1.6.0beta01 [December 15, 2011]
       
  3806   Removed machine-generated configure files from the GIT repository (they will
       
  3807     continue to appear in the tarball distributions and in the libpng15 and
       
  3808     earlier GIT branches).
       
  3809   Restored the new 'simplified' API, which was started in libpng-1.5.7beta02
       
  3810     but later deleted from libpng-1.5.7beta05.
       
  3811   Added example programs for the new 'simplified' API.
       
  3812   Added ANSI-C (C90) headers and require them, and take advantage of the
       
  3813     change. Also fixed some of the projects/* and contrib/* files that needed
       
  3814     updates for libpng16 and the move of pngvalid.c.
       
  3815     With this change the required ANSI-C header files are assumed to exist: the
       
  3816     implementation must provide float.h, limits.h, stdarg.h and stddef.h and
       
  3817     libpng relies on limits.h and stddef.h existing and behaving as defined
       
  3818     (the other two required headers aren't used).  Non-ANSI systems that don't
       
  3819     have stddef.h or limits.h will have to provide an appropriate fake
       
  3820     containing the relevant types and #defines.
       
  3821   The use of FAR/far has been eliminated and the definition of png_alloc_size_t
       
  3822     is now controlled by a flag so that 'small size_t' systems can select it
       
  3823     if necessary.  Libpng 1.6 may not currently work on such systems -- it
       
  3824     seems likely that it will ask 'malloc' for more than 65535 bytes with any
       
  3825     image that has a sufficiently large row size (rather than simply failing
       
  3826     to read such images).
       
  3827   New tools directory containing tools used to generate libpng code.
       
  3828   Fixed race conditions in parallel make builds. With higher degrees of
       
  3829     parallelism during 'make' the use of the same temporary file names such
       
  3830     as 'dfn*' can result in a race where a temporary file from one arm of the
       
  3831     build is deleted or overwritten in another arm.  This changes the
       
  3832     temporary files for suffix rules to always use $* and ensures that the
       
  3833     non-suffix rules use unique file names.
       
  3834 
       
  3835 Version 1.6.0beta02 [December 21, 2011]
       
  3836   Correct configure builds where build and source directories are separate.
       
  3837     The include path of 'config.h' was erroneously made relative in pngvalid.c
       
  3838     in libpng 1.5.7.
       
  3839 
       
  3840 Version 1.6.0beta03 [December 22, 2011]
       
  3841   Start-up code size improvements, error handler flexibility. These changes
       
  3842     alter how the tricky allocation of the initial png_struct and png_info
       
  3843     structures are handled. png_info is now handled in pretty much the same
       
  3844     way as everything else, except that the allocations handle NULL return
       
  3845     silently.  png_struct is changed in a similar way on allocation and on
       
  3846     deallocation a 'safety' error handler is put in place (which should never
       
  3847     be required).  The error handler itself is changed to permit mismatches
       
  3848     in the application and libpng error buffer size; however, this means a
       
  3849     silent change to the API to return the jmp_buf if the size doesn't match
       
  3850     the size from the libpng compilation; libpng now allocates the memory and
       
  3851     this may fail.  Overall these changes result in slight code size
       
  3852     reductions; however, this is a reduction in code that is always executed
       
  3853     so is particularly valuable.  Overall on a 64-bit system the libpng DLL
       
  3854     decreases in code size by 1733 bytes.  pngerror.o increases in size by
       
  3855     about 465 bytes because of the new functionality.
       
  3856   Added png_convert_to_rfc1123_buffer() and deprecated png_convert_to_rfc1123()
       
  3857     to avoid including a spurious buffer in the png_struct.
       
  3858 
       
  3859 Version 1.6.0beta04 [December 30, 2011]
       
  3860   Regenerated configure scripts with automake-1.11.2
       
  3861   Eliminated png_info_destroy(). It is now used only in png.c and only calls
       
  3862     one other internal function and memset().
       
  3863   Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously
       
  3864     it was disabled whenever internal fixed point arithmetic was selected,
       
  3865     which meant it didn't exist even on systems where FP was available but not
       
  3866     preferred.
       
  3867   Added pngvalid.c compile time checks for const APIs.
       
  3868   Implemented 'restrict' for png_info and png_struct. Because of the way
       
  3869     libpng works both png_info and png_struct are always accessed via a
       
  3870     single pointer.  This means adding C99 'restrict' to the pointer gives
       
  3871     the compiler some opportunity to optimize the code.  This change allows
       
  3872     that.
       
  3873   Moved AC_MSG_CHECKING([if libraries can be versioned]) later to the proper
       
  3874     location in configure.ac (Gilles Espinasse).
       
  3875   Changed png_memcpy to C assignment where appropriate. Changed all those
       
  3876     uses of png_memcpy that were doing a simple assignment to assignments
       
  3877     (all those cases where the thing being copied is a non-array C L-value).
       
  3878   Added some error checking to png_set_*() routines.
       
  3879   Removed the reference to the non-exported function png_memcpy() from
       
  3880     example.c.
       
  3881   Fixed the Visual C 64-bit build - it requires jmp_buf to be aligned, but
       
  3882     it had become misaligned.
       
  3883   Revised contrib/pngminus/pnm2png.c to avoid warnings when png_uint_32
       
  3884     and unsigned long are of different sizes.
       
  3885 
       
  3886 Version 1.6.0beta05 [January 15, 2012]
       
  3887   Updated manual with description of the simplified API (copied from png.h)
       
  3888   Fix bug in pngerror.c: some long warnings were being improperly truncated
       
  3889     (CVE-2011-3464, bug introduced in libpng-1.5.3beta05).
       
  3890 
       
  3891 Version 1.6.0beta06 [January 24, 2012]
       
  3892   Added palette support to the simplified APIs. This commit
       
  3893     changes some of the macro definitions in png.h, app code
       
  3894     may need corresponding changes.
       
  3895   Increased the formatted warning buffer to 192 bytes.
       
  3896   Added color-map support to simplified API. This is an initial version for
       
  3897     review; the documentation has not yet been updated.
       
  3898   Fixed Min/GW uninstall to remove libpng.dll.a
       
  3899 
       
  3900 Version 1.6.0beta07 [January 28, 2012]
       
  3901   Eliminated Intel icc/icl compiler warnings. The Intel (GCC derived)
       
  3902     compiler issues slightly different warnings from those issued by the
       
  3903     current vesions of GCC. This eliminates those warnings by
       
  3904     adding/removing casts and small code rewrites.
       
  3905   Updated configure.ac from autoupdate: added --enable-werror option.
       
  3906     Also some layout regularization and removal of introduced tab characters
       
  3907     (replaced with 3-character indentation).  Obsolete macros identified by
       
  3908     autoupdate have been removed; the replacements are all in 2.59 so
       
  3909     the pre-req hasn't been changed.  --enable-werror checks for support
       
  3910     for -Werror (or the given argument) in the compiler.  This mimics the
       
  3911     gcc configure option by allowing -Werror to be turned on safely; without
       
  3912     the option the tests written in configure itself fail compilation because
       
  3913     they cause compiler warnings.
       
  3914   Rewrote autogen.sh to run autoreconf instead of running tools one-by-one.
       
  3915   Conditionalize the install rules for MINGW and CYGWIN in CMakeLists.txt and
       
  3916     set CMAKE_LIBRARY_OUTPUT_DIRECTORY to "lib" on all platforms (C. Yapp).
       
  3917   Freeze libtool files in the 'scripts' directory. This version of autogen.sh
       
  3918     attempts to dissuade people from running it when it is not, or should not,
       
  3919     be necessary.  In fact, autogen.sh does not work when run in a libpng
       
  3920     directory extracted from a tar distribution anymore. You must run it in
       
  3921     a GIT clone instead.
       
  3922   Added two images to contrib/pngsuite (1-bit and 2-bit transparent grayscale),
       
  3923     and renamed three whose names were inconsistent with those in
       
  3924     pngsuite/README.txt.
       
  3925 
       
  3926 Version 1.6.0beta08 [February 1, 2012]
       
  3927   Fixed Image::colormap misalignment in pngstest.c
       
  3928   Check libtool/libtoolize version number (2.4.2) in configure.ac
       
  3929   Divide test-pngstest.sh into separate pngstest runs for basic and
       
  3930     transparent images.
       
  3931   Moved automake options to AM_INIT_AUTOMAKE in configure.ac
       
  3932   Added color-tests, silent-rules (Not yet implemented in Makefile.am) and
       
  3933     version checking to configure.ac
       
  3934   Improved pngstest speed by not doing redundant tests and add const to
       
  3935     the background parameter of png_image_finish_read. The --background
       
  3936     option is now done automagically only when required, so that commandline
       
  3937     option no longer exists.
       
  3938   Cleaned up pngpriv.h to consistently declare all functions and data.
       
  3939     Also eliminated PNG_CONST_DATA, which is apparently not needed but we
       
  3940     can't be sure until it is gone.
       
  3941   Added symbol prefixing that allows all the libpng external symbols
       
  3942     to be prefixed (suggested by Reuben Hawkins).
       
  3943   Updated "ftbb*.png" list in the owatcom and vstudio projects.
       
  3944   Fixed 'prefix' builds on clean systems. The generation of pngprefix.h
       
  3945     should not require itself.
       
  3946   Updated INSTALL to explain that autogen.sh must be run in a GIT clone,
       
  3947     not in a libpng directory extracted from a tar distribution.
       
  3948 
       
  3949 Version 1.6.0beta09 [February 1, 2012]
       
  3950   Reverted the prebuilt configure files to libpng-1.6.0beta05 condition.
       
  3951 
       
  3952 Version 1.6.0beta10 [February 3, 2012]
       
  3953   Added Z_SOLO for zlib-1.2.6+ and correct pngstest tests
       
  3954   Updated list of test images in CMakeLists.txt
       
  3955   Updated the prebuilt configure files to current condition.
       
  3956   Revised INSTALL information about autogen.sh; it works in tar distributions.
       
  3957 
       
  3958 Version 1.6.0beta11 [February 16, 2012]
       
  3959   Fix character count in pngstest command in projects/owatcom/pngstest.tgt
       
  3960   Revised test-pngstest.sh to report PASS/FAIL for each image.
       
  3961   Updated documentation about the simplified API.
       
  3962   Corrected estimate of error in libpng png_set_rgb_to_gray API.  The API is
       
  3963     extremely inaccurate for sRGB conversions because it uses an 8-bit
       
  3964     intermediate linear value and it does not use the sRGB transform, so it
       
  3965     suffers from the known instability in gamma transforms for values close
       
  3966     to 0 (see Poynton).  The net result is that the calculation has a maximum
       
  3967     error of 14.99/255; 0.5/255^(1/2.2).  pngstest now uses 15 for the
       
  3968     permitted 8-bit error. This may still not be enough because of arithmetic
       
  3969     error.
       
  3970   Removed some unused arrays (with #ifdef) from png_read_push_finish_row().
       
  3971   Fixed a memory overwrite bug in simplified read of RGB PNG with
       
  3972     non-linear gamma Also bugs in the error checking in pngread.c and changed
       
  3973     quite a lot of the checks in pngstest.c to be correct; either correctly
       
  3974     written or not over-optimistic.  The pngstest changes are insufficient to
       
  3975     allow all possible RGB transforms to be passed; pngstest cmppixel needs
       
  3976     to be rewritten to make it clearer which errors it allows and then changed
       
  3977     to permit known inaccuracies.
       
  3978   Removed tests for no-longer-used *_EMPTY_PLTE_SUPPORTED from pngstruct.h
       
  3979   Fixed fixed/float API export conditionals. 1) If FIXED_POINT or
       
  3980     FLOATING_POINT options were switched off, png.h ended up with lone ';'
       
  3981     characters.  This is not valid ANSI-C outside a function.  The ';'
       
  3982     characters have been moved inside the definition of PNG_FP_EXPORT and
       
  3983     PNG_FIXED_EXPORT. 2) If either option was switched off, the declaration
       
  3984     of the corresponding functions were completely omitted, even though some
       
  3985     of them are still used internally.  The result is still valid, but
       
  3986     produces warnings from gcc with some warning options (including -Wall). The
       
  3987     fix is to cause png.h to declare the functions with PNG_INTERNAL_FUNCTION
       
  3988     when png.h is included from pngpriv.h.
       
  3989   Check for invalid palette index while reading paletted PNG.  When one is
       
  3990     found, issue a warning and increase png_ptr->num_palette accordingly.
       
  3991     Apps are responsible for checking to see if that happened.
       
  3992 
       
  3993 Version 1.6.0beta12 [February 18, 2012]
       
  3994   Do not increase num_palette on invalid_index.
       
  3995   Relocated check for invalid palette index to pngrtran.c, after unpacking
       
  3996     the sub-8-bit pixels.
       
  3997   Fixed CVE-2011-3026 buffer overrun bug.  This bug was introduced when
       
  3998     iCCP chunk support was added at libpng-1.0.6. Deal more correctly with the
       
  3999     test on iCCP chunk length. Also removed spurious casts that may hide
       
  4000     problems on 16-bit systems.
       
  4001 
       
  4002 Version 1.6.0beta13 [February 24, 2012]
       
  4003   Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from
       
  4004     pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c;
       
  4005     now that png_ptr->buffer is inaccessible to applications, the special
       
  4006     handling is no longer useful.
       
  4007   Added PNG_SAFE_LIMITS feature to pnglibconf.dfa, pngpriv.h, and new
       
  4008     pngusr.dfa to reset the user limits to safe ones if PNG_SAFE_LIMITS is
       
  4009     defined.  To enable, use "CPPFLAGS=-DPNG_SAFE_LIMITS_SUPPORTED=1" on the
       
  4010     configure command or put #define PNG_SAFE_LIMITS_SUPPORTED in
       
  4011     pnglibconf.h.prebuilt and pnglibconf.h.
       
  4012 
       
  4013 Version 1.6.0beta14 [February 27, 2012]
       
  4014   Added information about the new limits in the manual.
       
  4015   Updated Makefile.in
       
  4016 
       
  4017 Version 1.6.0beta15 [March 2, 2012]
       
  4018   Removed unused "current_text" members of png_struct and the png_free()
       
  4019     of png_ptr->current_text from pngread.c
       
  4020   Rewrote pngstest.c for substantial speed improvement.
       
  4021   Fixed transparent pixel and 16-bit rgb tests in pngstest and removed a
       
  4022     spurious check in pngwrite.c
       
  4023   Added PNG_IMAGE_FLAG_FAST for the benefit of applications that store
       
  4024     intermediate files, or intermediate in-memory data, while processing
       
  4025     image data with the simplified API.  The option makes the files larger
       
  4026     but faster to write and read.  pngstest now uses this by default; this
       
  4027     can be disabled with the --slow option.
       
  4028   Improved pngstest fine tuning of error numbers, new test file generator.
       
  4029     The generator generates images that test the full range of sample values,
       
  4030     allow the error numbers in pngstest to be tuned and checked.  makepng
       
  4031     also allows generation of images with extra chunks, although this is
       
  4032     still work-in-progress.
       
  4033   Added check for invalid palette index while reading.
       
  4034   Fixed some bugs in ICC profile writing. The code should now accept
       
  4035     all potentially valid ICC profiles and reject obviously invalid ones.
       
  4036     It now uses png_error() to do so rather than casually writing a PNG
       
  4037     without the necessary color data.
       
  4038   Removed whitespace from the end of lines in all source files and scripts.
       
  4039 
       
  4040 Version 1.6.0beta16 [March 6, 2012]
       
  4041   Relocated palette-index checking function from pngrutil.c to pngtrans.c
       
  4042   Added palette-index checking while writing.
       
  4043   Changed png_inflate() and calling routines to avoid overflow problems.
       
  4044     This is an intermediate check-in that solves the immediate problems and
       
  4045     introduces one performance improvement (avoiding a copy via png_ptr->zbuf.)
       
  4046     Further changes will be made to make ICC profile handling more secure.
       
  4047   Fixed build warnings (MSVC, GCC, GCC v3). Cygwin GCC with default options
       
  4048     declares 'index' as a global, causing a warning if it is used as a local
       
  4049     variable.  GCC 64-bit warns about assigning a (size_t) (unsigned 64-bit)
       
  4050     to an (int) (signed 32-bit).  MSVC, however, warns about using the
       
  4051     unary '-' operator on an unsigned value (even though it is well defined
       
  4052     by ANSI-C to be ~x+1).  The padding calculation was changed to use a
       
  4053     different method.  Removed the tests on png_ptr->pass.
       
  4054   Added contrib/libtests/tarith.c to test internal arithmetic functions from
       
  4055     png.c. This is a libpng maintainer program used to validate changes to the
       
  4056     internal arithmetic functions.
       
  4057   Made read 'inflate' handling like write 'deflate' handling. The read
       
  4058     code now claims and releases png_ptr->zstream, like the write code.
       
  4059     The bug whereby the progressive reader failed to release the zstream
       
  4060     is now fixed, all initialization is delayed, and the code checks for
       
  4061     changed parameters on deflate rather than always calling
       
  4062     deflatedEnd/deflateInit.
       
  4063   Validate the zTXt strings in pngvalid.
       
  4064   Added code to validate the windowBits value passed to deflateInit2().
       
  4065     If the call to deflateInit2() is wrong a png_warning will be issued
       
  4066     (in fact this is harmless, but the PNG data produced may be sub-optimal).
       
  4067 
       
  4068 Version 1.6.0beta17 [March 10, 2012]
       
  4069   Fixed PNG_LIBPNG_BUILD_BASE_TYPE definition. 
       
  4070   Reject all iCCP chunks after the first, even if the first one is invalid.
       
  4071   Deflate/inflate was reworked to move common zlib calls into single
       
  4072     functions [rw]util.c.  A new shared keyword check routine was also added
       
  4073     and the 'zbuf' is no longer allocated on progressive read.  It is now
       
  4074     possible to call png_inflate() incrementally.  A warning is no longer
       
  4075     issued if the language tag or translated keyword in the iTXt chunk
       
  4076     has zero length.
       
  4077   If benign errors are disabled use maximum window on ancilliary inflate.
       
  4078     This works round a bug introduced in 1.5.4 where compressed ancillary
       
  4079     chunks could end up with a too-small windowBits value in the deflate
       
  4080     header.
       
  4081 
       
  4082 Version 1.6.0beta18 [March 16, 2012]
       
  4083   Issue a png_benign_error() instead of png_warning() about bad palette index.
       
  4084   In pngtest, treat benign errors as errors if "-strict" is present.
       
  4085   Fixed an off-by-one error in the palette index checking function.
       
  4086   Fixed a compiler warning under Cygwin (Windows-7, 32-bit system)
       
  4087   Revised example.c to put text strings in a temporary character array
       
  4088     instead of directly assigning string constants to png_textp members.
       
  4089     This avoids compiler warnings when -Wwrite-strings is enabled.
       
  4090   Added output flushing to aid debugging under Visual Studio. Unfortunately
       
  4091     this is necessary because the VS2010 output window otherwise simply loses
       
  4092     the error messages on error (they weren't flushed to the window before
       
  4093     the process exited, apparently!)
       
  4094   Added configuration support for benign errors and changed the read
       
  4095     default. Also changed some warnings in the iCCP and sRGB handling
       
  4096     from to benign errors. Configuration now makes read benign
       
  4097     errors warnings and write benign errors to errors by default (thus
       
  4098     changing the behavior on read).  The simplified API always forces
       
  4099     read benign errors to warnings (regardless of the system default, unless
       
  4100     this is disabled in which case the simplified API can't be built.)
       
  4101 
       
  4102 Version 1.6.0beta19 [March 18, 2012]
       
  4103   Work around for duplicate row start calls; added warning messages.
       
  4104     This turns on PNG_FLAG_DETECT_UNINITIALIZED to detect app code that
       
  4105     fails to call one of the 'start' routines (not enabled in libpng-1.5
       
  4106     because it is technically an API change, since it did normally work
       
  4107     before.)  It also makes duplicate calls to png_read_start_row (an
       
  4108     internal function called at the start of the image read) benign, as
       
  4109     they were before changes to use png_inflate_claim. Somehow webkit is
       
  4110     causing this to happen; this is probably a mis-feature in the zlib
       
  4111     changes so this commit is only a work-round.
       
  4112   Removed erroneous setting of DETECT_UNINITIALIZED and added more
       
  4113     checks. The code now does a png_error if an attempt is made to do the
       
  4114     row initialization twice; this is an application error and it has
       
  4115     serious consequences because the transform data in png_struct is
       
  4116     changed by each call.
       
  4117   Added application error reporting and added chunk names to read
       
  4118     benign errors; also added --strict to pngstest - not enabled
       
  4119     yet because a warning is produced.
       
  4120   Avoid the double gamma correction warning in the simplified API.
       
  4121     This allows the --strict option to pass in the pngstest checks
       
  4122 
       
  4123 Version 1.6.0beta20 [March 29, 2012]
       
  4124   Changed chunk handler warnings into benign errors, incrementally load iCCP
       
  4125   Added checksum-icc.c to contrib/tools
       
  4126   Prevent PNG_EXPAND+PNG_SHIFT doing the shift twice.
       
  4127   Recognize known sRGB ICC profiles while reading; prefer writing the
       
  4128     iCCP profile over writing the sRGB chunk, controlled by the
       
  4129     PNG_sRGB_PROFILE_CHECKS option.
       
  4130   Revised png_set_text_2() to avoid potential memory corruption (fixes
       
  4131     CVE-2011-3048, also known as CVE-2012-3425).
       
  4132 
       
  4133 Version 1.6.0beta21 [April 27, 2012]
       
  4134   Revised scripts/makefile.darwin: use system zlib; remove quotes around
       
  4135     architecture list; add missing ppc architecture; add architecture options
       
  4136     to shared library link; don't try to create a shared lib based on missing
       
  4137     RELEASE variable.
       
  4138   Enable png_set_check_for_invalid_index() for both read and write.
       
  4139   Removed #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED in pngpriv.h around
       
  4140     declaration of png_handle_unknown().
       
  4141   Added -lssp_nonshared in a comment in scripts/makefile.freebsd
       
  4142     and changed deprecated NOOBJ and NOPROFILE to NO_OBJ and NO_PROFILE.
       
  4143 
       
  4144 Version 1.6.0beta22 [May 23, 2012]
       
  4145   Removed need for -Wno-cast-align with clang.  clang correctly warns on
       
  4146     alignment increasing pointer casts when -Wcast-align is passed. This
       
  4147     fixes the cases that clang warns about either by eliminating the
       
  4148     casts from png_bytep to png_uint_16p (pngread.c), or, for pngrutil.c
       
  4149     where the cast is previously verified or pngstest.c where it is OK, by
       
  4150     introducing new png_aligncast macros to do the cast in a way that clang
       
  4151     accepts.
       
  4152 
       
  4153 Version 1.6.0beta23 [June 6, 2012]
       
  4154   Revised CMakeLists.txt to not attempt to make a symlink under mingw.
       
  4155   Made fixes for new optimization warnings from gcc 4.7.0. The compiler
       
  4156     performs an optimization which is safe; however it then warns about it.
       
  4157     Changing the type of 'palette_number' in pngvalid.c removes the warning.
       
  4158   Do not depend upon a GCC feature macro being available for use in generating
       
  4159     the linker mapfile symbol prefix.
       
  4160   Improved performance of new do_check_palette_indexes() function (only
       
  4161     update the value when it actually increases, move test for whether
       
  4162     the check is wanted out of the function.
       
  4163 
       
  4164 Version 1.6.0beta24 [June 7, 2012]
       
  4165   Don't check palette indexes if num_palette is 0 (as it can be in MNG files).
       
  4166 
       
  4167 Version 1.6.0beta25 [June 16, 2012]
       
  4168   Revised png_set_keep_unknown_chunks() so num_chunks < 0 means ignore all
       
  4169     unknown chunks and all known chunks except for IHDR, PLTE, tRNS, IDAT,
       
  4170     and IEND.  Previously it only meant ignore all unknown chunks, the
       
  4171     same as num_chunks == 0. Revised png_image_skip_unused_chunks() to
       
  4172     provide a list of chunks to be processed instead of a list of chunks to
       
  4173     ignore.  Revised contrib/gregbook/readpng2.c accordingly.
       
  4174 
       
  4175 Version 1.6.0beta26 [July 10, 2012]
       
  4176   Removed scripts/makefile.cegcc from the *.zip and *.7z distributions; it
       
  4177     depends on configure, which is not included in those archives.
       
  4178   Moved scripts/chkfmt to contrib/tools.
       
  4179   Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
       
  4180 
       
  4181 Version 1.6.0beta27 [August 11, 2012]
       
  4182   Do not compile PNG_DEPRECATED, PNG_ALLOC and PNG_PRIVATE when __GNUC__ < 3.
       
  4183   Do not use __restrict when GNUC is <= 3.1
       
  4184   Removed references to png_zalloc() and png_zfree() from the manual.
       
  4185   Fixed configurations where floating point is completely disabled.  Because
       
  4186     of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION declares
       
  4187     floating point APIs during libpng builds even if they are completely
       
  4188     disabled. This requires the png floating point types (png_double*) to be
       
  4189     declared even though the functions are never actually defined.  This
       
  4190     change provides a dummy definition so that the declarations work, yet any
       
  4191     implementation will fail to compile because of an incomplete type.
       
  4192   Re-eliminated the use of strcpy() in pngtest.c.  An unncessary use of
       
  4193     strcpy() was accidentally re-introduced in libpng16; this change replaces
       
  4194     it with strncpy().
       
  4195   Eliminated use of png_sizeof(); use sizeof() instead.
       
  4196   Use a consistent style for (sizeof type) and (sizeof (array))
       
  4197   Cleanup of png_set_filler().  This function does very different things on
       
  4198     read and write.  In libpng 1.6 the two cases can be distinguished and
       
  4199     considerable code cleanup, and extra error checking, is possible.  This
       
  4200     makes calls on the write side that have no effect be ignored with a
       
  4201     png_app_error(), which can be disabled in the app using
       
  4202     png_set_benign_errors(), and removes the spurious use of usr_channels
       
  4203     on the read side.
       
  4204   Insist on autotools 1.12.1 for git builds because there are security issues
       
  4205     with 1.12 and insisting on anything less would allow 1.12 to be used.
       
  4206   Removed info_ptr->signature[8] from WRITE-only builds.
       
  4207   Add some conditions for compiling png_fixed().  This is a small function
       
  4208     but it requires "-lm" on some platforms.
       
  4209   Cause pngtest --strict to fail on any warning from libpng (not just errors)
       
  4210     and cause it not to fail at the comparison step if libpng lacks support
       
  4211     for writing chunks that it reads from the input (currently only implemented
       
  4212     for compressed text chunks).
       
  4213   Make all three "make check" test programs work without READ or WRITE support.
       
  4214     Now "make check" will succeed even if libpng is compiled with -DPNG_NO_READ
       
  4215     or -DPNG_NO_WRITE.  The tests performed are reduced, but the basic reading
       
  4216     and writing of a PNG file is always tested by one or more of the tests.
       
  4217   Consistently use strlen(), memset(), memcpy(), and memcmp() instead of the
       
  4218     png_strlen(), png_memset(), png_memcpy(), and png_memcmp() macros.
       
  4219   Removed the png_sizeof(), png_strlen(), png_memset(), png_memcpy(), and
       
  4220     png_memcmp() macros.
       
  4221   Work around gcc 3.x and Microsoft Visual Studio 2010 complaints. Both object
       
  4222     to the split initialization of num_chunks.
       
  4223 
       
  4224 Version 1.6.0beta28 [August 29, 2012]
       
  4225   Unknown handling fixes and clean up. This adds more correct option
       
  4226     control of the unknown handling, corrects the pre-existing bug where
       
  4227     the per-chunk 'keep' setting is ignored and makes it possible to skip
       
  4228     IDAT chunks in the sequential reader (broken in earlier 1.6 versions).
       
  4229     There is a new test program, test-unknown.c, which is a work in progress
       
  4230     (not currently part of the test suite).  Comments in the header files now
       
  4231     explain how the unknown handling works.
       
  4232   Allow fine grain control of unknown chunk APIs. This change allows
       
  4233     png_set_keep_unknown_chunks() to be turned off if not required and causes
       
  4234     both read and write to behave appropriately (on read this is only possible
       
  4235     if the user callback is used to handle unknown chunks).  The change
       
  4236     also removes the support for storing unknown chunks in the info_struct
       
  4237     if the only unknown handling enabled is via the callback, allowing libpng
       
  4238     to be configured with callback reading and none of the unnecessary code.
       
  4239   Corrected fix for unknown handling in pngtest. This reinstates the
       
  4240     libpng handling of unknown chunks other than vpAg and sTER (including
       
  4241     unsafe-to-copy chunks which were dropped before) and eliminates the
       
  4242     repositioning of vpAg and sTER in pngtest.png by changing pngtest.png
       
  4243     (so the chunks are where libpng would put them).
       
  4244   Added "tunknown" test and corrected a logic error in png_handle_unknown()
       
  4245     when SAVE support is absent.  Moved the shell test scripts for
       
  4246     contrib/libtests from the libpng top directory to contrib/libtests.
       
  4247     png_handle_unknown() must always read or skip the chunk, if
       
  4248     SAVE_UNKNOWN_CHUNKS is turned off *and* the application does not set
       
  4249     a user callback an unknown chunk will not be read, leading to a read
       
  4250     error, which was revealed by the "tunknown" test.
       
  4251   Cleaned up and corrected ICC profile handling.
       
  4252     contrib/libtests/makepng: corrected 'rgb' and 'gray' cases.  profile_error
       
  4253     messages could be truncated; made a correct buffer size calculation and
       
  4254     adjusted pngerror.c appropriately. png_icc_check_* checking improved;
       
  4255     changed the functions to receive the correct color type of the PNG on read
       
  4256     or write and check that it matches the color space of the profile (despite
       
  4257     what the comments said before, there is danger in assuming the app will
       
  4258     cope correctly with an RGB profile on a grayscale image and, since it
       
  4259     violates the PNG spec, allowing it is certain to produce inconsistent
       
  4260     app behavior and might even cause app crashes.) Check that profiles
       
  4261     contain the tags needed to process the PNG (tags all required by the ICC
       
  4262     spec). Removed unused PNG_STATIC from pngpriv.h.
       
  4263 
       
  4264 Version 1.6.0beta29 [September 4, 2012]
       
  4265   Fixed the simplified API example programs to add the *colormap parameter
       
  4266     to several of he API and improved the error message if the version field
       
  4267     is not set.
       
  4268   Added contrib/examples/* to the *.zip and *.7z distributions.
       
  4269   Updated simplified API synopses and description of the png_image structure
       
  4270     in the manual.
       
  4271   Made makepng and pngtest produce identical PNGs, add "--relaxed" option
       
  4272     to pngtest. The "--relaxed" option turns off the benign errors that are
       
  4273     enabled by default in pre-RC builds. makepng can now write ICC profiles
       
  4274     where the length has not been extended to a multiple of 4, and pngtest
       
  4275     now intercepts all libpng errors, allowing the previously-introduced
       
  4276     "--strict test" on no warnings to actually work.
       
  4277   Improved ICC profile handling including cHRM chunk generation and fixed
       
  4278     Cygwin+MSVC build errors. The ICC profile handling now includes more
       
  4279     checking.  Several errors that caused rejection of the profile are now
       
  4280     handled with a warning in such a way that the invalid profiles will be
       
  4281     read by default in release (but not pre-RC) builds but will not be
       
  4282     written by default.  The easy part of handling the cHRM chunk is written,
       
  4283     where the ICC profile contains the required data.  The more difficult
       
  4284     part plus guessing a gAMA value requires code to pass selected RGB values
       
  4285     through the profile.
       
  4286 
       
  4287 Version 1.6.0beta30 [October 24, 2012]
       
  4288   Changed ICC profile matrix/vector types to not depend on array type rules.
       
  4289     By the ANSI-C standard the new types should be identical to the previous
       
  4290     versions, and all known versions of gcc tested with the previous versions
       
  4291     except for GCC-4.2.1 work with this version.  The change makes the ANSI-C
       
  4292     rule that const applied to an array of elements applies instead to the
       
  4293     elements in the array moot by explicitly applying const to the base
       
  4294     elements of the png_icc_matrix and png_icc_vector types. The accidental
       
  4295     (harmless) 'const' previously applied to the parameters of two of the
       
  4296     functions have also been removed.
       
  4297   Added a work around for GCC 4.2 optimization bug.
       
  4298   Marked the broken (bad white point) original HP sRGB profiles correctly and
       
  4299     correct comments.
       
  4300   Added -DZ_SOLO to contrib/pngminim/*/makefile to work with zlib-1.2.7
       
  4301   Use /MDd for vstudio debug builds. Also added pngunkown to the vstudio
       
  4302     builds, fixed build errors and corrected a minor exit code error in
       
  4303     pngvalid if the 'touch' file name is invalid.
       
  4304   Add updated WARNING file to projects/vstudio from libpng 1.5/vstudio
       
  4305   Fixed build when using #define PNG_NO_READ_GAMMA in png_do_compose() in
       
  4306     pngrtran.c (Domani Hannes).
       
  4307 
       
  4308 Version 1.6.0beta31 [November 1, 2012]
       
  4309   Undid the erroneous change to vstudio/pngvalid build in libpng-1.6.0beta30.
       
  4310   Made pngvalid so that it will build outside the libpng source tree.
       
  4311   Made builds -DPNG_NO_READ_GAMMA compile (the unit tests still fail).
       
  4312   Made PNG_NO_READ_GAMMA switch off interfaces that depend on READ_GAMMA.
       
  4313     Prior to 1.6.0 switching off READ_GAMMA did unpredictable things to the
       
  4314     interfaces that use it (specifically, png_do_background in 1.4 would
       
  4315     simply display composite for grayscale images but do composition
       
  4316     with the incorrect arithmetic for color ones). In 1.6 the semantic
       
  4317     of -DPNG_NO_READ_GAMMA is changed to simply disable any interface that
       
  4318     depends on it; this obliges people who set it to consider whether they
       
  4319     really want it off if they happen to use any of the interfaces in
       
  4320     question (typically most users who disable it won't).
       
  4321   Fixed GUIDs in projects/vstudio. Some were duplicated or missing,
       
  4322     resulting in VS2010 having to update the files.
       
  4323   Removed non-working ICC profile support code that was mostly added to
       
  4324     libpng-1.6.0beta29 and beta30. There was too much code for too little
       
  4325     gain; implementing full ICC color correction may be desireable but is left
       
  4326     up to applications.
       
  4327 
       
  4328 Version 1.6.0beta32 [November 25, 2012]
       
  4329   Fixed an intermittent SEGV in pngstest due to an uninitialized array element.
       
  4330   Added the ability for contrib/libtests/makepng.c to make a PNG with just one
       
  4331     color. This is useful for debugging pngstest color inaccuracy reports.
       
  4332   Fixed error checking in the simplified write API (Olaf van der Spek)
       
  4333   Made png_user_version_check() ok to use with libpng version 1.10.x and later.
       
  4334 
       
  4335 Version 1.6.0beta33 [December 15, 2012]
       
  4336   Fixed typo in png.c (PNG_SET_CHUNK_MALLOC_MAX should be PNG_CHUNK_MALLOC_MAX)
       
  4337     that causes the MALLOC_MAX limit not to work (John Bowler)
       
  4338   Change png_warning() to png_app_error() in pngwrite.c and comment the
       
  4339     fall-through condition.
       
  4340   Change png_warning() to png_app_warning() in png_write_tRNS().
       
  4341   Rearranged the ARM-NEON optimizations: Isolated the machine specific code
       
  4342     to the hardware subdirectory and added comments to pngrutil.c so that
       
  4343     implementors of other optimizations know what to do.
       
  4344   Fixed cases of unquoted DESTDIR in Makefile.am
       
  4345   Rebuilt Makefile.in, etc., with autoconf-2.69 and automake-1.12.5.
       
  4346 
       
  4347 Version 1.6.0beta34 [December 19, 2012]
       
  4348   Cleaned up whitespace in the synopsis portion of the manpage "libpng.3"
       
  4349   Disassembled the version number in scripts/options.awk (necessary for
       
  4350     building on SunOs).
       
  4351 
       
  4352 Version 1.6.0beta35 [December 23, 2012]
       
  4353   Made default Zlib compression settings be configurable. This adds #defines to
       
  4354     pnglibconf.h to control the defaults.
       
  4355   Fixed Windows build issues, enabled ARM compilation. Various warnings issued
       
  4356     by earlier versions of GCC fixed for Cygwin and Min/GW (which both use old
       
  4357     GCCs.) ARM support is enabled by default in zlib.props (unsupported by
       
  4358     Microsoft) and ARM compilation is made possible by deleting the check for
       
  4359     x86. The test programs cannot be run because they are not signed.
       
  4360 
       
  4361 Version 1.6.0beta36 [January 2, 2013]
       
  4362   Discontinued distributing libpng-1.x.x.tar.bz2.
       
  4363   Discontinued distributing libpng-1.7.0-1.6.0-diff.txt and similar.
       
  4364   Rebuilt configure with autoconf-2.69 (inadvertently not done in beta33)
       
  4365   Fixed 'make distcheck' on SUN OS - libpng.so was not being removed
       
  4366 
       
  4367 Version 1.6.0beta37 [January 10, 2013]
       
  4368   Fixed conceivable but difficult to repro overflow. Also added two test
       
  4369     programs to generate and test a PNG which should have the problem.
       
  4370 
       
  4371 Version 1.6.0beta39 [January 19, 2013]
       
  4372   Again corrected attempt at overflow detection in png_set_unknown_chunks()
       
  4373   (CVE-2013-7353).  Added overflow detection in png_set_sPLT() and
       
  4374   png_set_text_2() (CVE-2013-7354).
       
  4375 
       
  4376 Version 1.6.0beta40 [January 20, 2013]
       
  4377   Use consistent handling of overflows in text, sPLT and unknown png_set_* APIs
       
  4378 
       
  4379 Version 1.6.0rc01 [January 26, 2013]
       
  4380   No changes.
       
  4381 
       
  4382 Version 1.6.0rc02 [February 4, 2013]
       
  4383   Added png_get_palette_max() function.
       
  4384 
       
  4385 Version 1.6.0rc03 [February 5, 2013]
       
  4386   Fixed the png_get_palette_max API.
       
  4387 
       
  4388 Version 1.6.0rc04 [February 7, 2013]
       
  4389   Turn serial tests back on (recently turned off by autotools upgrade).
       
  4390 
       
  4391 Version 1.6.0rc05 [February 8, 2013]
       
  4392   Update manual about png_get_palette_max().
       
  4393 
       
  4394 Version 1.6.0rc06 [February 9, 2013]
       
  4395   Fixed missing dependency in --prefix builds The intermediate
       
  4396     internal 'prefix.h' file can only be generated correctly after
       
  4397     pnglibconf.h, however the dependency was not in Makefile.am.  The
       
  4398     symptoms are unpredictable depending on the order make chooses to
       
  4399     build pngprefix.h and pnglibconf.h, often the error goes unnoticed
       
  4400     because there is a system pnglibconf.h to use instead.
       
  4401 
       
  4402 Version 1.6.0rc07 [February 10, 2013]
       
  4403   Enclosed the new png_get_palette_max in #ifdef PNG_GET_PALETTE_MAX_SUPPORTED
       
  4404     block, and revised pnglibconf.h and pnglibconf.h.prebuilt accordingly.
       
  4405 
       
  4406 Version 1.6.0rc08 [February 10, 2013]
       
  4407   Fix typo in png.h #ifdef
       
  4408 
       
  4409 Version 1.6.0 [February 14, 2013]
       
  4410   No changes.
       
  4411 
       
  4412 Version 1.6.1beta01 [February 16, 2013]
       
  4413   Made symbol prefixing work with the ARM neon optimizations. Also allow
       
  4414     pngpriv.h to be included for preprocessor definitions only, so it can
       
  4415     be used in non-C/C++ files. Back ported from libpng 1.7.
       
  4416   Made sRGB check numbers consistent.
       
  4417   Ported libpng 1.5 options.awk/dfn file handling to 1.6, fixed one bug.
       
  4418   Removed cc -E workround, corrected png_get_palette_max API Tested on
       
  4419     SUN OS cc 5.9, which demonstrates the tokenization problem previously
       
  4420     avoided by using /lib/cpp.  Since all .dfn output is now protected in
       
  4421     double quotes unless it is to be macro substituted the fix should
       
  4422     work everywhere.
       
  4423   Enabled parallel tests - back ported from libpng-1.7.
       
  4424   scripts/pnglibconf.dfa formatting improvements back ported from libpng17.
       
  4425   Fixed a race condition in the creation of the build 'scripts' directory
       
  4426     while building with a parallel make.
       
  4427   Use approved/supported Android method to check for NEON, use Linux/POSIX
       
  4428     1003.1 API to check /proc/self/auxv avoiding buffer allocation and other
       
  4429     library calls (ported from libpng15).
       
  4430 
       
  4431 Version 1.6.1beta02 [February 19, 2013]
       
  4432   Use parentheses more consistently in "#if defined(MACRO)" tests.
       
  4433   Folded long lines.
       
  4434   Reenabled code to allow zero length PLTE chunks for MNG.
       
  4435 
       
  4436 Version 1.6.1beta03 [February 22, 2013]
       
  4437   Fixed ALIGNED_MEMORY support.
       
  4438   Allow run-time ARM NEON checking to be disabled. A new configure option:
       
  4439     --enable-arm-neon=always will stop the run-time checks. New checks
       
  4440     within arm/arm_init.c will cause the code not to be compiled unless
       
  4441     __ARM_NEON__ is set. This should make it fail safe (if someone asks
       
  4442     for it on then the build will fail if it can't be done.)
       
  4443   Updated the INSTALL document.
       
  4444 
       
  4445 Version 1.6.1beta04 [February 27, 2013]
       
  4446   Revised INSTALL to recommend using CPPFLAGS instead of INCLUDES.
       
  4447   Revised scripts/makefile.freebsd to respect ZLIBLIB and ZLIBINC.
       
  4448   Revised scripts/dfn.awk to work with the buggy MSYS awk that has trouble
       
  4449     with CRLF line endings.
       
  4450 
       
  4451 Version 1.6.1beta05 [March 1, 2013]
       
  4452   Avoid a possible memory leak in contrib/gregbook/readpng.c
       
  4453 
       
  4454 Version 1.6.1beta06 [March 4, 2013]
       
  4455   Better documentation of unknown handling API interactions.
       
  4456   Corrected Android builds and corrected libpng.vers with symbol
       
  4457     prefixing. This adds an API to set optimization options externally,
       
  4458     providing an alternative and general solution for the non-portable
       
  4459     run-time tests used by the ARM Neon code.  It also makes those tests
       
  4460     compile and link on Android.
       
  4461   The order of settings vs options in pnglibconf.h is reversed to allow
       
  4462     settings to depend on options and options can now set (or override) the
       
  4463     defaults for settings.
       
  4464 
       
  4465 Version 1.6.1beta07 [March 7, 2013]
       
  4466   Corrected simplified API default gamma for color-mapped output, added
       
  4467     a flag to change default. In 1.6.0 when the simplified API was used
       
  4468     to produce color-mapped output from an input image with no gamma
       
  4469     information the gamma assumed for the input could be different from
       
  4470     that assumed for non-color-mapped output.  In particular 16-bit depth
       
  4471     input files were assumed to be sRGB encoded, whereas in the 'direct'
       
  4472     case they were assumed to have linear data.  This was an error.  The
       
  4473     fix makes the simplified API treat all input files the same way and
       
  4474     adds a new flag to the png_image::flags member to allow the
       
  4475     application/user to specify that 16-bit files contain sRGB data
       
  4476     rather than the default linear.
       
  4477   Fixed bugs in the pngpixel and makepng test programs.
       
  4478 
       
  4479 Version 1.6.1beta08 [March 7, 2013]
       
  4480   Fixed CMakelists.txt to allow building a single variant of the library
       
  4481     (Claudio Bley):
       
  4482   Introduced a PNG_LIB_TARGETS variable that lists all activated library
       
  4483     targets.  It is an error if this variable ends up empty, ie. you have
       
  4484     to build at least one library variant.
       
  4485   Made the *_COPY targets only depend on library targets actually being build.
       
  4486   Use PNG_LIB_TARGETS to unify a code path.
       
  4487   Changed the CREATE_SYMLINK macro to expect the full path to a file as the
       
  4488     first argument. When symlinking the filename component of that path is
       
  4489     determined and used as the link target.
       
  4490   Use copy_if_different in the CREATE_SYMLINK macro.
       
  4491 
       
  4492 Version 1.6.1beta09 [March 13, 2013]
       
  4493   Eliminated two warnings from the Intel C compiler. The warnings are
       
  4494     technically valid, although a reasonable treatment of division would
       
  4495     show it to be incorrect.
       
  4496 
       
  4497 Version 1.6.1rc01 [March 21, 2013]
       
  4498   No changes.
       
  4499 
       
  4500 Version 1.6.1 [March 28, 2013]
       
  4501   No changes.
       
  4502 
       
  4503 Version 1.6.2beta01 [April 14, 2013]
       
  4504   Updated documentation of 1.5.x to 1.6.x changes in iCCP chunk handling.
       
  4505   Fixed incorrect warning of excess deflate data. End condition - the
       
  4506     warning would be produced if the end of the deflate stream wasn't read
       
  4507     in the last row.  The warning is harmless.
       
  4508   Corrected the test on user transform changes on read. It was in the
       
  4509     png_set of the transform function, but that doesn't matter unless the
       
  4510     transform function changes the rowbuf size, and that is only valid if
       
  4511     transform_info is called.
       
  4512   Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c
       
  4513     (Flavio Medeiros).
       
  4514   Corrected length written to uncompressed iTXt chunks (Samuli Suominen).
       
  4515     Bug was introduced in libpng-1.6.0.
       
  4516 
       
  4517 Version 1.6.2rc01 [April 18, 2013]
       
  4518   Added contrib/tools/fixitxt.c, to repair the erroneous iTXt chunk length
       
  4519     written by libpng-1.6.0 and 1.6.1.
       
  4520   Disallow storing sRGB information when the sRGB is not supported.
       
  4521 
       
  4522 Version 1.6.2rc02 [April 18, 2013]
       
  4523   Merge pngtest.c with libpng-1.7.0
       
  4524 
       
  4525 Version 1.6.2rc03 [April 22, 2013]
       
  4526   Trivial spelling cleanup.
       
  4527 
       
  4528 Version 1.6.2rc04 and 1.6.2rc05 [omitted]
       
  4529 
       
  4530 Version 1.6.2rc06 [April 24, 2013]
       
  4531   Reverted to version 1.6.2rc03.  Recent changes to arm/neon support
       
  4532     have been ported to libpng-1.7.0beta09 and will reappear in version
       
  4533     1.6.3beta01.
       
  4534 
       
  4535 Version 1.6.2 [April 25, 2013]
       
  4536   No changes.
       
  4537 
       
  4538 Version 1.6.3beta01 [April 25, 2013]
       
  4539   Revised stack marking in arm/filter_neon.S and configure.ac.
       
  4540   Ensure that NEON filter stuff is completely disabled when switched 'off'.
       
  4541     Previously the ARM NEON specific files were still built if the option
       
  4542     was switched 'off' as opposed to being explicitly disabled.
       
  4543 
       
  4544 Version 1.6.3beta02 [April 26, 2013]
       
  4545   Test for 'arm*' not just 'arm' in the host_cpu configure variable.
       
  4546   Rebuilt the configure scripts.
       
  4547 
       
  4548 Version 1.6.3beta03 [April 30, 2013]
       
  4549   Expanded manual paragraph about writing private chunks, particularly
       
  4550     the need to call png_set_keep_unknown_chunks() when writing them.
       
  4551   Avoid dereferencing NULL pointer possibly returned from
       
  4552      png_create_write_struct() (Andrew Church).
       
  4553 
       
  4554 Version 1.6.3beta05 [May 9, 2013]
       
  4555   Calculate our own zlib windowBits when decoding rather than trusting the
       
  4556     CMF bytes in the PNG datastream.
       
  4557   Added an option to force maximum window size for inflating, which was
       
  4558     the behavior of libpng15 and earlier.
       
  4559   Added png-fix-itxt and png-fix-too-far-back to the built programs and
       
  4560     removed warnings from the source code and timepng that are revealed as
       
  4561     a result.
       
  4562   Detect wrong libpng versions linked to png-fix-too-far-back, which currently
       
  4563     only works with libpng versions that can be made to reliably fail when
       
  4564     the deflate data contains an out-of-window reference.  This means only
       
  4565     1.6 and later.
       
  4566   Fixed gnu issues: g++ needs a static_cast, gcc 4.4.7 has a broken warning
       
  4567     message which it is easier to work round than ignore.
       
  4568   Updated contrib/pngminus/pnm2png.c (Paul Stewart):
       
  4569     Check for EOF
       
  4570     Ignore "#" delimited comments in input file to pnm2png.c.
       
  4571     Fixed whitespace handling
       
  4572     Added a call to png_set_packing()
       
  4573     Initialize dimension values so if sscanf fails at least we have known
       
  4574       invalid values.
       
  4575   Attempt to detect configuration issues with png-fix-too-far-back, which
       
  4576     requires both the correct libpng and the correct zlib to function
       
  4577     correctly.
       
  4578   Check ZLIB_VERNUM for mismatches, enclose #error in quotes
       
  4579   Added information in the documentation about problems with and fixes for
       
  4580     the bad CRC and bad iTXt chunk situations.
       
  4581 
       
  4582 Version 1.6.3beta06 [May 12, 2013]
       
  4583   Allow contrib/pngminus/pnm2png.c to compile without WRITE_INVERT and
       
  4584     WRITE_PACK supported (writes error message that it can't read P1 or
       
  4585     P4 PBM files).
       
  4586   Improved png-fix-too-far-back usage message, added --suffix option.
       
  4587   Revised contrib/pngminim/*/makefile to generate pnglibconf.h with the
       
  4588     right zlib header files.
       
  4589   Separated CPPFLAGS and CFLAGS in contrib/pngminim/*/makefile
       
  4590 
       
  4591 Version 1.6.3beta07 [June 8, 2013]
       
  4592   Removed a redundant test in png_set_IHDR().
       
  4593   Added set(CMAKE_CONFIGURATION_TYPES ...) to CMakeLists.txt (Andrew Hundt)
       
  4594   Deleted set(CMAKE_BUILD_TYPE) block from CMakeLists.txt
       
  4595   Enclose the prototypes for the simplified write API in
       
  4596     #ifdef PNG_STDIO_SUPPORTED/#endif
       
  4597   Make ARM NEON support work at compile time (not just configure time).
       
  4598     This moves the test on __ARM_NEON__ into pngconf.h to avoid issues when
       
  4599     using a compiler that compiles for multiple architectures at one time.
       
  4600   Removed PNG_FILTER_OPTIMIZATIONS and PNG_ARM_NEON_SUPPORTED from
       
  4601     pnglibconf.h, allowing more of the decisions to be made internally
       
  4602     (pngpriv.h) during the compile.  Without this, symbol prefixing is broken
       
  4603     under certain circumstances on ARM platforms.  Now only the API parts of
       
  4604     the optimizations ('check' vs 'api') are exposed in the public header files
       
  4605     except that the new setting PNG_ARM_NEON_OPT documents how libpng makes the
       
  4606     decision about whether or not to use the optimizations.
       
  4607   Protect symbol prefixing against CC/CPPFLAGS/CFLAGS useage.
       
  4608     Previous iOS/Xcode fixes for the ARM NEON optimizations moved the test
       
  4609     on __ARM_NEON__ from configure time to compile time.  This breaks symbol
       
  4610     prefixing because the definition of the special png_init_filter_functions
       
  4611     call was hidden at configure time if the relevant compiler arguments are
       
  4612     passed in CFLAGS as opposed to CC.  This change attempts to avoid all
       
  4613     the confusion that would result by declaring the init function even when
       
  4614     it is not used, so that it will always get prefixed.
       
  4615 
       
  4616 Version 1.6.3beta08 [June 18, 2013]
       
  4617   Revised libpng.3 so that "doclifter" can process it.
       
  4618 
       
  4619 Version 1.6.3beta09 [June 27, 2013]
       
  4620   Revised example.c to illustrate use of PNG_DEFAULT_sRGB and PNG_GAMMA_MAC_18
       
  4621     as parameters for png_set_gamma().  These have been available since
       
  4622     libpng-1.5.4.
       
  4623   Renamed contrib/tools/png-fix-too-far-back.c to pngfix.c and revised it
       
  4624     to check all compressed chunks known to libpng.
       
  4625 
       
  4626 Version 1.6.3beta10 [July 5, 2013]
       
  4627   Updated documentation to show default behavior of benign errors correctly.
       
  4628   Only compile ARM code when PNG_READ_SUPPORTED is defined.
       
  4629   Fixed undefined behavior in contrib/tools/pngfix.c and added new strip
       
  4630     option. pngfix relied on undefined behavior and even a simple change from
       
  4631     gcc to g++ caused it to fail.  The new strip option 'unsafe' has been
       
  4632     implemented and is the default if --max is given.  Option names have
       
  4633     been clarified, with --strip=transform now stripping the bKGD chunk,
       
  4634     which was stripped previously with --strip=unused.
       
  4635   Added all documented chunk types to pngpriv.h
       
  4636   Unified pngfix.c source with libpng17.
       
  4637 
       
  4638 Version 1.6.3rc01 [July 11, 2013]
       
  4639   No changes.
       
  4640 
       
  4641 Version 1.6.3 [July 18, 2013]
       
  4642   Revised manual about changes in iTXt chunk handling made in libpng-1.6.0.
       
  4643   Added "/* SAFE */" comments in pngrutil.c and pngrtran.c where warnings
       
  4644     may be erroneously issued by code-checking applications.
       
  4645 
       
  4646 Version 1.6.4beta01 [August 21, 2013]
       
  4647   Added information about png_set_options() to the manual.
       
  4648   Delay calling png_init_filter_functions() until a row with nonzero filter
       
  4649     is found.
       
  4650 
       
  4651 Version 1.6.4beta02 [August 30, 2013]
       
  4652   Fixed inconsistent conditional compilation of png_chunk_unknown_handling()
       
  4653     prototype, definition, and usage.  Made it depend on
       
  4654     PNG_HANDLE_AS_UNKNOWN_SUPPORTED everywhere.
       
  4655 
       
  4656 Version 1.6.4rc01 [September 5, 2013]
       
  4657   No changes.
       
  4658 
       
  4659 Version 1.6.4 [September 12, 2013]
       
  4660   No changes.
       
  4661 
       
  4662 Version 1.6.5 [September 14, 2013]
       
  4663   Removed two stray lines of code from arm/arm_init.c.
       
  4664 
       
  4665 Version 1.6.6 [September 16, 2013]
       
  4666   Removed two stray lines of code from arm/arm_init.c, again.
       
  4667 
       
  4668 Version 1.6.7beta01 [September 30, 2013]
       
  4669   Revised unknown chunk code to correct several bugs in the NO_SAVE_/NO_WRITE
       
  4670     combination
       
  4671   Allow HANDLE_AS_UNKNOWN to work when other options are configured off. Also
       
  4672     fixed the pngminim makefiles to work when $(MAKEFLAGS) contains stuff
       
  4673     which terminates the make options (as by default in recent versions of
       
  4674     Gentoo).
       
  4675   Avoid up-cast warnings in pngvalid.c. On ARM the alignment requirements of
       
  4676     png_modifier are greater than that of png_store and as a consequence
       
  4677     compilation of pngvalid.c results in a warning about increased alignment
       
  4678     requirements because of the bare cast to (png_modifier*). The code is safe,
       
  4679     because the pointer is known to point to a stack allocated png_modifier,
       
  4680     but this change avoids the warning.
       
  4681   Fixed default behavior of ARM_NEON_API. If the ARM NEON API option was
       
  4682     compiled without the CHECK option it defaulted to on, not off.
       
  4683   Check user callback behavior in pngunknown.c. Previous versions compiled
       
  4684     if SAVE_UNKNOWN was not available but did nothing since the callback
       
  4685     was never implemented.
       
  4686   Merged pngunknown.c with 1.7 version and back ported 1.7 improvements/fixes
       
  4687 
       
  4688 Version 1.6.7beta02 [October 12, 2013]
       
  4689   Made changes for compatibility with automake 1.14:
       
  4690     1) Added the 'compile' program to the list of programs that must be cleaned
       
  4691        in autogen.sh
       
  4692     2) Added 'subdir-objects' which causes .c files in sub-directories to be
       
  4693        compiled such that the corresponding .o files are also in the
       
  4694        sub-directory.  This is because automake 1.14 warns that the
       
  4695        current behavior of compiling to the top level directory may be removed
       
  4696        in the future.
       
  4697     3) Updated dependencies on pnglibconf.h to match the new .o locations and
       
  4698        added all the files in contrib/libtests and contrib/tools that depend
       
  4699        on pnglibconf.h
       
  4700     4) Added 'BUILD_SOURCES = pnglibconf.h'; this is the automake recommended
       
  4701        way of handling the dependencies of sources that are machine generated;
       
  4702        unfortunately it only works if the user does 'make all' or 'make check',
       
  4703        so the dependencies (3) are still required.
       
  4704   Cleaned up (char*) casts of zlib messages. The latest version of the Intel C
       
  4705     compiler complains about casting a string literal as (char*), so copied the
       
  4706     treatment of z_const from the library code into pngfix.c
       
  4707   Simplified error message code in pngunknown. The simplification has the
       
  4708     useful side effect of avoiding a bogus warning generated by the latest
       
  4709     version of the Intel C compiler (it objects to
       
  4710     condition ? string-literal : string-literal).
       
  4711   Make autogen.sh work with automake 1.13 as well as 1.14. Do this by always
       
  4712     removing the 1.14 'compile' script but never checking for it.
       
  4713 
       
  4714 Version 1.6.7beta03 [October 19, 2013]
       
  4715   Added ARMv8 support (James Yu <james.yu at linaro.org>).  Added file
       
  4716     arm/filter_neon_intrinsics.c; enable with -mfpu=neon.
       
  4717   Revised pngvalid to generate size images with as many filters as it can
       
  4718     manage, limited by the number of rows.
       
  4719   Cleaned up ARM NEON compilation handling. The tests are now in pngpriv.h
       
  4720     and detect the broken GCC compilers.
       
  4721 
       
  4722 Version 1.6.7beta04 [October 26, 2013]
       
  4723   Allow clang derived from older GCC versions to use ARM intrinsics. This
       
  4724     causes all clang builds that use -mfpu=neon to use the intrinsics code,
       
  4725     not the assembler code.  This has only been tested on iOS 7. It may be
       
  4726     necessary to exclude some earlier clang versions but this seems unlikely.
       
  4727   Changed NEON implementation selection mechanism. This allows assembler
       
  4728     or intrinsics to be turned on at compile time during the build by defining
       
  4729     PNG_ARM_NEON_IMPLEMENTATION to the correct value (2 or 1).  This macro
       
  4730     is undefined by default and the build type is selected in pngpriv.h.
       
  4731 
       
  4732 Version 1.6.7rc01 [November 2, 2013]
       
  4733   No changes.
       
  4734 
       
  4735 Version 1.6.7rc02 [November 7, 2013]
       
  4736   Fixed #include in filter_neon_intrinsics.c and ctype macros. The ctype char
       
  4737     checking macros take an unsigned char argument, not a signed char.
       
  4738 
       
  4739 Version 1.6.7 [November 14, 2013]
       
  4740   No changes.
       
  4741 
       
  4742 Version 1.6.8beta01 [November 24, 2013]
       
  4743   Moved prototype for png_handle_unknown() in pngpriv.h outside of
       
  4744     the #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED/#endif block.
       
  4745   Added "-Wall" to CFLAGS in contrib/pngminim/*/makefile
       
  4746   Conditionally compile some unused functions reported by -Wall in
       
  4747     pngminim.
       
  4748   Fixed 'minimal' builds. Various obviously useful minimal configurations
       
  4749     don't build because of missing contrib/libtests test programs and
       
  4750     overly complex dependencies in scripts/pnglibconf.dfa. This change
       
  4751     adds contrib/conftest/*.dfa files that can be used in automatic build
       
  4752     scripts to ensure that these configurations continue to build.
       
  4753   Enabled WRITE_INVERT and WRITE_PACK in contrib/pngminim/encoder.
       
  4754   Fixed pngvalid 'fail' function declaration on the Intel C Compiler.
       
  4755     This reverts to the previous 'static' implementation and works round
       
  4756     the 'unused static function' warning by using PNG_UNUSED().
       
  4757 
       
  4758 Version 1.6.8beta02 [November 30, 2013]
       
  4759   Removed or marked PNG_UNUSED some harmless "dead assignments" reported
       
  4760     by clang scan-build.
       
  4761   Changed tabs to 3 spaces in png_debug macros and changed '"%s"m'
       
  4762     to '"%s" m' to improve portability among compilers.
       
  4763   Changed png_free_default() to free() in pngtest.c
       
  4764 
       
  4765 Version 1.6.8rc01 [December 12, 2013]
       
  4766   Tidied up pngfix inits and fixed pngtest no-write builds.
       
  4767 
       
  4768 Version 1.6.8rc02 [December 14, 2013]
       
  4769   Handle zero-length PLTE chunk or NULL palette with png_error()
       
  4770     instead of png_chunk_report(), which by default issues a warning
       
  4771     rather than an error, leading to later reading from a NULL pointer
       
  4772     (png_ptr->palette) in png_do_expand_palette(). This is CVE-2013-6954
       
  4773     and VU#650142.  Libpng-1.6.1 through 1.6.7 are vulnerable.
       
  4774     Libpng-1.6.0 and earlier do not have this bug.
       
  4775 
       
  4776 Version 1.6.8 [December 19, 2013]
       
  4777   No changes.
       
  4778 
       
  4779 Version 1.6.9beta01 [December 26, 2013]
       
  4780   Bookkeeping: Moved functions around (no changes). Moved transform
       
  4781     function definitions before the place where they are called so that
       
  4782     they can be made static. Move the intrapixel functions and the
       
  4783     grayscale palette builder out of the png?tran.c files. The latter
       
  4784     isn't a transform function and is no longer used internally, and the
       
  4785     former MNG specific functions are better placed in pngread/pngwrite.c
       
  4786   Made transform implementation functions static. This makes the internal
       
  4787     functions called by png_do_{read|write}_transformations static. On an
       
  4788     x86-64 DLL build (Gentoo Linux) this reduces the size of the text
       
  4789     segment of the DLL by 1208 bytes, about 0.6%. It also simplifies
       
  4790     maintenance by removing the declarations from pngpriv.h and allowing
       
  4791     easier changes to the internal interfaces.
       
  4792   Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69
       
  4793     in the tar distributions.
       
  4794 
       
  4795 Version 1.6.9beta02 [January 1, 2014]
       
  4796   Added checks for libpng 1.5 to pngvalid.c.  This supports the use of
       
  4797     this version of pngvalid in libpng 1.5
       
  4798   Merged with pngvalid.c from libpng-1.7 changes to create a single
       
  4799     pngvalid.c
       
  4800   Removed #error macro from contrib/tools/pngfix.c (Thomas Klausner).
       
  4801   Merged pngrio.c, pngtrans.c, pngwio.c, and pngerror.c with libpng-1.7.0
       
  4802   Merged libpng-1.7.0 changes to make no-interlace configurations work
       
  4803     with test programs.
       
  4804   Revised pngvalid.c to support libpng 1.5, which does not support the
       
  4805     PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in
       
  4806     pngvalid.c
       
  4807   Allow unversioned links created on install to be disabled in configure.
       
  4808     In configure builds 'make install' changes/adds links like png.h
       
  4809     and libpng.a to point to the newly installed, versioned, files (e.g.
       
  4810     libpng17/png.h and libpng17.a). Three new configure options and some
       
  4811     rearrangement of Makefile.am allow creation of these links to be disabled.
       
  4812 
       
  4813 Version 1.6.9beta03 [January 10, 2014]
       
  4814   Removed potentially misleading warning from png_check_IHDR().
       
  4815 
       
  4816 Version 1.6.9beta04 [January 20, 2014]
       
  4817   Updated scripts/makefile.* to use CPPFLAGS (Cosmin).
       
  4818   Added clang attribute support (Cosmin).
       
  4819 
       
  4820 Version 1.6.9rc01 [January 28, 2014]
       
  4821   No changes.
       
  4822 
       
  4823 Version 1.6.9rc02 [January 30, 2014]
       
  4824   Quiet an uninitialized memory warning from VC2013 in png_get_png().
       
  4825 
       
  4826 Version 1.6.9 [February 6, 2014]
       
  4827 
       
  4828 Version 1.6.10beta01 [February 9, 2014]
       
  4829   Backported changes from libpng-1.7.0beta30 and beta31:
       
  4830   Fixed a large number of instances where PNGCBAPI was omitted from
       
  4831     function definitions.
       
  4832   Added pngimage test program for png_read_png() and png_write_png()
       
  4833     with two new test scripts.
       
  4834   Removed dependence on !PNG_READ_EXPAND_SUPPORTED for calling
       
  4835     png_set_packing() in png_read_png().
       
  4836   Fixed combination of ~alpha with shift. On read invert alpha, processing
       
  4837     occurred after shift processing, which causes the final values to be
       
  4838     outside the range that should be produced by the shift. Reversing the
       
  4839     order on read makes the two transforms work together correctly and mirrors
       
  4840     the order used on write.
       
  4841   Do not read invalid sBIT chunks. Previously libpng only checked sBIT
       
  4842     values on write, so a malicious PNG writer could therefore cause
       
  4843     the read code to return an invalid sBIT chunk, which might lead to
       
  4844     application errors or crashes.  Such chunks are now skipped (with
       
  4845     chunk_benign_error).
       
  4846   Make png_read_png() and png_write_png() prototypes in png.h depend
       
  4847     upon PNG_READ_SUPPORTED and PNG_WRITE_SUPPORTED.
       
  4848   Support builds with unsupported PNG_TRANSFORM_* values.  All of the
       
  4849     PNG_TRANSFORM_* values are always defined in png.h and, because they
       
  4850     are used for both read and write in some cases, it is not reliable
       
  4851     to #if out ones that are totally unsupported. This change adds error
       
  4852     detection in png_read_image() and png_write_image() to do a
       
  4853     png_app_error() if the app requests something that cannot be done
       
  4854     and it adds corresponding code to pngimage.c to handle such options
       
  4855     by not attempting to test them.
       
  4856 
       
  4857 Version 1.6.10beta02 [February 23, 2014]
       
  4858   Moved redefines of png_error(), png_warning(), png_chunk_error(),
       
  4859     and png_chunk_warning() from pngpriv.h to png.h to make them visible
       
  4860     to libpng-calling applications.
       
  4861   Moved OS dependent code from arm/arm_init.c, to allow the included
       
  4862     implementation of the ARM NEON discovery function to be set at
       
  4863     build-time and provide sample implementations from the current code in the
       
  4864     contrib/arm-neon subdirectory. The __linux__ code has also been changed to
       
  4865     compile and link on Android by using /proc/cpuinfo, and the old linux code
       
  4866     is in contrib/arm-neon/linux-auxv.c.  The new code avoids POSIX and Linux
       
  4867     dependencies apart from opening /proc/cpuinfo and is C90 compliant.
       
  4868   Check for info_ptr == NULL early in png_read_end() so we don't need to
       
  4869     run all the png_handle_*() and depend on them to return if info_ptr == NULL.
       
  4870     This improves the performance of png_read_end(png_ptr, NULL) and makes
       
  4871     it more robust against future programming errors.
       
  4872   Check for __has_extension before using it in pngconf.h, to
       
  4873     support older Clang versions (Jeremy Sequoia).
       
  4874   Treat CRC error handling with png_set_crc_action(), instead of with
       
  4875     png_set_benign_errors(), which has been the case since libpng-1.6.0beta18.
       
  4876   Use a user warning handler in contrib/gregbook/readpng2.c instead of default,
       
  4877     so warnings will be put on stderr even if libpng has CONSOLE_IO disabled.
       
  4878   Added png_ptr->process_mode = PNG_READ_IDAT_MODE in png_push_read_chunk
       
  4879     after recognizing the IDAT chunk, which avoids an infinite loop while
       
  4880     reading a datastream whose first IDAT chunk is of zero-length.
       
  4881     This fixes CERT VU#684412 and CVE-2014-0333.
       
  4882   Don't recognize known sRGB profiles as sRGB if they have been hacked,
       
  4883     but don't reject them and don't issue a copyright violation warning.
       
  4884 
       
  4885 Version 1.6.10beta03 [February 25, 2014]
       
  4886   Moved some documentation from png.h to libpng.3 and libpng-manual.txt
       
  4887   Minor editing of contrib/arm-neon/README and contrib/examples/*.c
       
  4888 
       
  4889 Version 1.6.10rc01 [February 27, 2014]
       
  4890   Fixed typos in the manual and in scripts/pnglibconf.dfa (CFLAGS -> CPPFLAGS
       
  4891     and PNG_USR_CONFIG -> PNG_USER_CONFIG).
       
  4892 
       
  4893 Version 1.6.10rc02 [February 28, 2014]
       
  4894   Removed unreachable return statement after png_chunk_error()
       
  4895     in pngrutil.c
       
  4896 
       
  4897 Version 1.6.10rc03 [March 4, 2014]
       
  4898   Un-deprecated png_data_freer().
       
  4899 
       
  4900 Version 1.6.10 [March 6, 2014]
       
  4901   No changes.
       
  4902 
       
  4903 Version 1.6.11beta01 [March 17, 2014]
       
  4904   Use "if (value != 0)" instead of "if (value)" consistently.
       
  4905   Changed ZlibSrcDir from 1.2.5 to 1.2.8 in projects/vstudio.
       
  4906   Moved configuration information from the manual to the INSTALL file.
       
  4907 
       
  4908 Version 1.6.11beta02 [April 6, 2014]
       
  4909   Removed #if/#else/#endif from inside two pow() calls in pngvalid.c because
       
  4910     they were handled improperly by Portland Group's PGI-14.1 - PGI-14.3
       
  4911     when using its "__builtin_pow()" function.
       
  4912   Silence 'unused parameter' build warnings (Cosmin Truta).
       
  4913   $(CP) is now used alongside $(RM_F).  Also, use 'copy' instead of 'cp'
       
  4914     where applicable, and applied other minor makefile changes (Cosmin).
       
  4915   Don't warn about invalid dimensions exceeding user limits (Cosmin).
       
  4916   Allow an easy replacement of the default pre-built configuration
       
  4917     header with a custom header, via the make PNGLIBCONF_H_PREBUILT
       
  4918     macro (Cosmin).
       
  4919 
       
  4920 Version 1.6.11beta03 [April 6, 2014]
       
  4921   Fixed a typo in pngrutil.c, introduced in libpng-1.5.6, that interferes
       
  4922     with "blocky" expansion of sub-8-bit interlaced PNG files (Eric Huss).
       
  4923   Optionally use  __builtin_bswap16() in png_do_swap().
       
  4924 
       
  4925 Version 1.6.11beta04 [April 19, 2014]
       
  4926   Made progressive reading of interlaced images consistent with the
       
  4927     behavior of the sequential reader and consistent with the manual, by
       
  4928     moving some code out of the PNG_READ_INTERLACING_SUPPORTED blocks. The
       
  4929     row_callback now receives the proper pass number and unexpanded rows, when
       
  4930     png_combine_row() isn't built or used, and png_set_interlace_handling()
       
  4931     is not called.
       
  4932   Allow PNG_sRGB_PROFILE_CHECKING = (-1) to mean no sRGB profile checking.
       
  4933 
       
  4934 Version 1.6.11beta05 [April 26, 2014]
       
  4935   Do not reject ICC V2 profiles that lack padding (Kai-Uwe Behrmann).
       
  4936   Relocated closing bracket of the sRGB profile test loop to avoid getting
       
  4937     "Not recognizing known sRGB profile that has been edited" warning for
       
  4938     ICC V2 profiles that lack the MD5 signature in the profile header.
       
  4939 
       
  4940 Version 1.6.11beta06 [May 19, 2014]
       
  4941   Added PNG_SKIP_sRGB_CHECK_PROFILE choice for png_set_option().
       
  4942 
       
  4943 Version 1.6.11rc01 [May 27, 2014]
       
  4944   No changes.
       
  4945 
       
  4946 Version 1.6.11rc02 [June 3, 2014]
       
  4947   Test ZLIB_VERNUM instead of PNG_ZLIB_VERNUM in contrib/tools/pngfix.c
       
  4948 
       
  4949 Version 1.6.11 [June 5, 2014]
       
  4950   No changes.
       
  4951 
       
  4952 Version 1.6.12rc01 [June 6, 2014]
       
  4953   Relocated new code from 1.6.11beta06 in png.c to a point after the
       
  4954     declarations (Max Stepin).
       
  4955 
       
  4956 Version 1.6.12rc02 [June 7, 2014]
       
  4957   Changed file permissions of contrib/tools/intgamma.sh,
       
  4958     test-driver, and compile from 0644 to 0755 (Cosmin).
       
  4959 
       
  4960 Version 1.6.12rc03 [June 8, 2014]
       
  4961   Ensure "__has_attribute()" macro exists before trying to use it with
       
  4962     old clang compilers (MacPorts Ticket #43939).
       
  4963 
       
  4964 Version 1.6.12 [June 12, 2014]
       
  4965   No changes.
       
  4966 
       
  4967 Version 1.6.13beta01 [July 4, 2014]
       
  4968   Quieted -Wsign-compare and -Wclobber compiler warnings in
       
  4969     contrib/pngminus/*.c
       
  4970   Added "(void) png_ptr;" where needed in contrib/gregbook to quiet
       
  4971     compiler complaints about unused pointers.
       
  4972   Split a long output string in contrib/gregbook/rpng2-x.c.
       
  4973   Added "PNG_SET_OPTION" requirement for sRGB chunk support to pnglibconf.dfa,
       
  4974     Needed for write-only support (John Bowler).
       
  4975   Changed "if defined(__ARM_NEON__)" to
       
  4976     "if (defined(__ARM_NEON__) || defined(__ARM_NEON))" (James Wu).
       
  4977   Fixed clang no-warning builds: png_digit was defined but never used.
       
  4978     
       
  4979 Version 1.6.13beta02 [July 21, 2014]
       
  4980   Fixed an incorrect separator ("/" should be "\") in scripts/makefile.vcwin32
       
  4981     (bug report from Wolfgang S. Kechel).  Bug was introduced in libpng-1.6.11.
       
  4982     Also fixed makefile.bc32, makefile.bor, makefile.msc, makefile.intel, and
       
  4983     makefile.tc3 similarly.
       
  4984 
       
  4985 Version 1.6.13beta03 [August 3, 2014]
       
  4986   Removed scripts/makefile.elf. It has not worked since libpng-1.5.0beta14
       
  4987     due to elimination of the PNG_FUNCTION_EXPORT and PNG_DATA_EXPORT
       
  4988     definitions from pngconf.h.
       
  4989   Ensure that CMakeLists.txt makes the target "lib" directory before making
       
  4990     symbolic link into it (SourceForge bug report #226 by Rolf Timmermans).
       
  4991 
       
  4992 Version 1.6.13beta04 [August 8, 2014]
       
  4993   Added opinion that the ECCN (Export Control Classification Number) for
       
  4994     libpng is EAR99 to the README file.
       
  4995   Eliminated use of "$<" in makefile explicit rules, when copying
       
  4996     $PNGLIBCONF_H_PREBUILT.  This does not work on some versions of make;
       
  4997     bug introduced in libpng version 1.6.11.
       
  4998 
       
  4999 Version 1.6.13rc01 [August 14, 2014]
       
  5000   Made "ccopts" agree with "CFLAGS" in scripts/makefile.hp* and makefile.*sunu
       
  5001 
       
  5002 Version 1.6.13 [August 21, 2014]
       
  5003   No changes.
       
  5004 
       
  5005 Version 1.6.14beta01 [September 14, 2014]
       
  5006   Guard usage of png_ptr->options with #ifdef PNG_SET_OPTION_SUPPORTED.
       
  5007   Do not build contrib/tools/pngfix.c when PNG_SETJMP_NOT_SUPPORTED,
       
  5008     to allow "make" to complete without setjmp support (bug report by
       
  5009     Claudio Fontana)
       
  5010   Add "#include <setjmp.h>" to contrib/tools/pngfix.c (John Bowler)
       
  5011 
       
  5012 Version 1.6.14beta02 [September 18, 2014]
       
  5013   Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
       
  5014     because usleep() is deprecated.
       
  5015   Define usleep() in contrib/gregbook/rpng2-x.c if not already defined
       
  5016     in unistd.h and nanosleep() is not available; fixes error introduced
       
  5017     in libpng-1.6.13.
       
  5018   Disable floating point exception handling in pngvalid.c when
       
  5019     PNG_FLOATING_ARITHMETIC is not supported (bug report by "zootus
       
  5020     at users.sourceforge.net").
       
  5021 
       
  5022 Version 1.6.14beta03 [September 19, 2014]
       
  5023   Define FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW in pngvalid.c if not
       
  5024     already defined.  Revert floating point exception handling in pngvalid.c
       
  5025     to version 1.6.14beta01 behavior.
       
  5026 
       
  5027 Version 1.6.14beta04 [September 27, 2014]
       
  5028   Fixed incorrect handling of the iTXt compression flag in pngrutil.c
       
  5029     (bug report by Shunsaku Hirata).  Bug was introduced in libpng-1.6.0.
       
  5030 
       
  5031 Version 1.6.14beta05 [October 1, 2014]
       
  5032   Added "option READ_iCCP enables READ_COMPRESSED_TEXT" to pnglibconf.dfa
       
  5033 
       
  5034 Version 1.6.14beta06 [October 5, 2014]
       
  5035   Removed unused "text_len" parameter from private function png_write_zTXt().
       
  5036   Conditionally compile some code in png_deflate_claim(), when
       
  5037     PNG_WARNINGS_SUPPORTED and PNG_ERROR_TEXT_SUPPORTED are disabled.
       
  5038   Replaced repeated code in pngpread.c with PNG_PUSH_SAVE_BUFFER_IF_FULL.
       
  5039   Added "chunk iTXt enables TEXT" and "chunk zTXt enables TEXT"
       
  5040     to pnglibconf.dfa.
       
  5041   Removed "option READ_COMPRESSED_TEXT enables READ_TEXT" from pnglibconf.dfa,
       
  5042     to make it possible to configure a libpng that supports iCCP but not TEXT.
       
  5043 
       
  5044 Version 1.6.14beta07 [October 7, 2014]
       
  5045   Removed "option WRITE_COMPRESSED_TEXT enables WRITE_TEXT" from pnglibconf.dfa
       
  5046   Only mark text chunks as written after successfully writing them.
       
  5047 
       
  5048 Version 1.6.14rc01 [October 15, 2014]
       
  5049   Fixed some typos in comments.
       
  5050 
       
  5051 Version 1.6.14rc02 [October 17, 2014]
       
  5052   Changed png_convert_to_rfc_1123() to png_convert_to_rfc_1123_buffer()
       
  5053     in the manual, to reflect the change made in libpng-1.6.0.
       
  5054   Updated README file to explain that direct access to the png_struct
       
  5055     and info_struct members has not been permitted since libpng-1.5.0.
       
  5056 
       
  5057 Version 1.6.14 [October 23, 2014]
       
  5058   No changes.
       
  5059 
       
  5060 Version 1.6.15beta01 [October 29, 2014]
       
  5061   Changed "if (!x)" to "if (x == 0)" and "if (x)" to "if (x != 0)"
       
  5062   Simplified png_free_data().
       
  5063   Added missing "ptr = NULL" after some instances of png_free().
       
  5064 
       
  5065 Version 1.6.15beta02 [November 1, 2014]
       
  5066   Changed remaining "if (!x)" to "if (x == 0)" and "if (x)" to "if (x != 0)"
       
  5067 
       
  5068 Version 1.6.15beta03 [November 3, 2014]
       
  5069   Added PNG_USE_ARM_NEON configuration flag (Marcin Juszkiewicz).
       
  5070 
       
  5071 Version 1.6.15beta04 [November 4, 2014]
       
  5072   Removed new PNG_USE_ARM_NEON configuration flag and made a one-line
       
  5073     revision to configure.ac to support ARM on aarch64 instead (John Bowler).
       
  5074 
       
  5075 Version 1.6.15beta05 [November 5, 2014]
       
  5076   Use png_get_libpng_ver(NULL) instead of PNG_LIBPNG_VER_STRING in
       
  5077     example.c, pngtest.c, and applications in the contrib directory.
       
  5078   Avoid out-of-bounds memory access in png_user_version_check().
       
  5079   Simplified and future-proofed png_user_version_check().
       
  5080   Fixed GCC unsigned int->float warnings. Various versions of GCC
       
  5081     seem to generate warnings when an unsigned value is implicitly
       
  5082     converted to double. This is probably a GCC bug but this change
       
  5083     avoids the issue by explicitly converting to (int) where safe.
       
  5084   Free all allocated memory in pngimage. The file buffer cache was left
       
  5085     allocated at the end of the program, harmless but it causes memory
       
  5086     leak reports from clang.
       
  5087   Fixed array size calculations to avoid warnings. At various points
       
  5088     in the code the number of elements in an array is calculated using
       
  5089     sizeof.  This generates a compile time constant of type (size_t) which
       
  5090     is then typically assigned to an (unsigned int) or (int). Some versions
       
  5091     of GCC on 64-bit systems warn about the apparent narrowing, even though
       
  5092     the same compiler does apparently generate the correct, in-range,
       
  5093     numeric constant.  This adds appropriate, safe, casts to make the
       
  5094     warnings go away.
       
  5095 
       
  5096 Version 1.6.15beta06 [November 6, 2014]
       
  5097   Reverted use png_get_libpng_ver(NULL) instead of PNG_LIBPNG_VER_STRING
       
  5098     in the manual, example.c, pngtest.c, and applications in the contrib
       
  5099     directory.  It was incorrect advice.
       
  5100 
       
  5101 Version 1.6.15beta07 [November 7, 2014]
       
  5102   Removed #ifdef PNG_16BIT_SUPPORTED/#endif around png_product2(); it is
       
  5103     needed by png_reciprocal2().
       
  5104   Added #ifdef PNG_16BIT_SUPPORTED/#endif around png_log16bit() and
       
  5105     png_do_swap().
       
  5106   Changed all "#endif /* PNG_FEATURE_SUPPORTED */" to "#endif /* FEATURE */"
       
  5107 
       
  5108 Version 1.6.15beta08 [November 8, 2014]
       
  5109   More housecleaning in *.h
       
  5110 
       
  5111 Version 1.6.15rc01 [November 13, 2014]
       
  5112 
       
  5113 Version 1.6.15rc02 [November 14, 2014]
       
  5114   The macros passed in the command line to Borland make were ignored if
       
  5115     similarly-named macros were already defined in makefiles. This behavior
       
  5116     is different from POSIX make and other make programs.  Surround the
       
  5117     macro definitions with ifndef guards (Cosmin).
       
  5118 
       
  5119 Version 1.6.15rc03 [November 16, 2014]
       
  5120   Added "-D_CRT_SECURE_NO_WARNINGS" to CFLAGS in scripts/makefile.vcwin32.
       
  5121   Removed the obsolete $ARCH variable from scripts/makefile.darwin.
       
  5122 
       
  5123 Version 1.6.15 [November 20, 2014]
       
  5124   No changes.
       
  5125 
       
  5126 Version 1.6.16beta01 [December 14, 2014]
       
  5127   Added ".align 2" to arm/filter_neon.S to support old GAS assemblers that
       
  5128     don't do alignment correctly.
       
  5129   Revised Makefile.am and scripts/symbols.dfn to work with MinGW/MSYS
       
  5130     (Bob Friesenhahn).
       
  5131 
       
  5132 Version 1.6.16beta02 [December 15, 2014]
       
  5133   Revised Makefile.am and scripts/*.dfn again to work with MinGW/MSYS;
       
  5134     renamed scripts/*.dfn to scripts/*.c (John Bowler).
       
  5135 
       
  5136 Version 1.6.16beta03 [December 21, 2014]
       
  5137   Quiet a "comparison always true" warning in pngstest.c (John Bowler).
       
  5138 
       
  5139 Version 1.6.16rc01 [December 21, 2014]
       
  5140   Restored a test on width that was removed from png.c at libpng-1.6.9
       
  5141     (Bug report by Alex Eubanks).
       
  5142 
       
  5143 Version 1.6.16rc02 [December 21, 2014]
       
  5144   Undid the update to pngrutil.c in 1.6.16rc01.
       
  5145 
       
  5146 Version 1.6.16rc03 [December 21, 2014]
       
  5147   Fixed an overflow in png_combine_row with very wide interlaced images.
       
  5148 
       
  5149 Version 1.6.16 [December 22, 2014]
       
  5150   No changes.
  3535 
  5151 
  3536 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
  5152 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
  3537 (subscription required; visit
  5153 (subscription required; visit
  3538 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
  5154 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
  3539 to subscribe)
  5155 to subscribe)
  3540 or to glennrp at users.sourceforge.net
  5156 or to glennrp at users.sourceforge.net
  3541 
  5157 
  3542 Glenn R-P
  5158 Glenn R-P
  3543 */ }
       
  3544 #endif