
Libpng 1.4.17beta03 - October 23, 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

   1.4.17beta03.tar.xz (LZMA-compressed, recommended)
   1.4.17beta03.tar.gz
   1.4.17beta03.tar.bz2

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

   lp1417b03.7z (LZMA-compressed, recommended)
   lp1417b03.zip

Other information:

   1.4.17beta03-README.txt
   1.4.17beta03-LICENSE.txt
   libpng-1.4.17beta03-*.asc (armored detached GPG signatures)

Changes since the last public release (1.4.16):

version 1.4.17beta01 [August 19, 2015]
  Fix typecast in a png_debug2() statement in png_set_text_2() to
    avoid a compiler warning in PNG_DEBUG builds.
  Avoid Coverity issues 80855, 80856, and 80857 (PRINTF_ARG_MISMATCH)
    in pngtest.c PNG_DEBUG builds.
  Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
  Removed WRITE_WEIGHTED_FILTERED code.
  Added -DZ_SOLO to contrib/pngminim/*/makefile to work with zlib-1.2.7+
  Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
    because usleep() is deprecated (port from libpng16).
  Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
  Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
  Fixed some bad links in the man page.
  Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
    Seacord).
  Fixed the recently reported 1's complement security issue by replacing
    the value that is illegal in the PNG spec, in both signed and unsigned
    values, with 0. Illegal unsigned values (anything greater than or equal
    to  0x80000000) can still pass through, but since these are not illegal
    in ANSI-C (unlike 0x80000000 in the signed case) the checking that
    occurs later can catch them (John Bowler).

version 1.4.17beta02 [October 15, 2015]
  Fixed png_save_int_32 when int is not 2's complement (John Bowler).
  Added sPLT support to pngtest.c

version 1.4.17beta03 [October 23, 2015]
  Added a safety check in png_set_tIME() (Bug report from Qixue Xiao).

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

Glenn R-P
