
Libpng 1.2.54rc02 - October 31, 2015

This is not intended to be a public release.  It will be replaced
within a few weeks by a public version or by another test version.

Files available for download:

Source files with LF line endings (for Unix/Linux) and with a
"configure" script

   libpng-1.2.54rc02.tar.xz (LZMA-compressed, recommended)
   libpng-1.2.54rc02.tar.gz
   libpng-1.2.54rc02.tar.bz2

Source files with LF line endings (for Unix/Linux) without the
"configure" script

   libpng-1.2.54rc02-no-config.tar.xz (LZMA-compressed, recommended)
   libpng-1.2.54rc02-no-config.tar.gz
   libpng-1.2.54rc02-no-config.tar.bz2

Source files with CRLF line endings (for Windows), without the
"configure" script

   lp1254r02.zip
   lp1254r02.7z
   lp1254r02.tar.bz2

Project files

   libpng-1.2.54rc02-project-netware.zip
   libpng-1.2.54rc02-project-wince.zip

Other information:

   libpng-1.2.54rc02-README.txt
   libpng-1.2.54rc02-KNOWNBUGS.txt
   libpng-1.2.54rc02-LICENSE.txt
   libpng-1.2.54rc02-Y2K-compliance.txt
   libpng-1.2.54rc02-[previous version]-diff.txt
   libpng-1.2.54rc02-*.asc (armored detached GPG signatures)

Changes since the last public release (1.2.53):

version 1.2.54beta01 [October 23, 2015]
  Fix typecast in a png_debug2() statement in png_set_text_2() to
    avoid a compiler warning in PNG_DEBUG builds.
  Fixed printf formats in pngtest.c to avoid compiler warnings and a
    Coverity warning in PNG_DEBUG builds.
  Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
  Removed WRITE_WEIGHTED_FILTERED code.
  Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
  Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
  Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
    because usleep() is deprecated (port from libpng16).
  Fixed some bad links in the man page.
  Added a safety check in png_set_tIME() (Fixes CVE-2015-7981, bug report
    from Qixue Xiao).

version 1.2.54rc01 [October 28, 2015]
  No changes.

version 1.2.54rc02 [October 31, 2015]
  Prevent writing over-length PLTE chunk (Cosmin Truta).
  Silently truncate over-length PLTE chunk while reading.

Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
to subscribe)
or to glennrp at users.sourceforge.net

Glenn R-P
#endif
