
Libpng 1.4.8rc01 - June 30, 2011

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.8rc01.tar.xz (LZMA-compressed, recommended)
   1.4.8rc01.tar.gz
   1.4.8rc01.tar.bz2

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

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

Other information:

   1.4.8rc01-README.txt
   1.4.8rc01-LICENSE.txt

Changes since the last public release (1.4.7):

version 1.4.8beta01 [June 4, 2011]
  Undef "_ALL_SOURCE" for AIX, to prevent "jmpbuf" from being redefined.
  Copied png_debug macros from pngpriv.h into pngtest.c and removed
    "#include pngpriv.h" from pngtest.c, to avoid setting a bad example.
  Pass "" instead of '\0' to png_default_error() in png_err().  This mistake
    was introduced in libpng-1.2.20beta01.
  Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
    before IDAT.
  Ported bugfix in pngrtran.c from 1.5.3: when expanding a paletted image,
    always expand to RGBA if transparency is present.

version 1.4.8beta02 [June 5, 2011]
  Ported bugfix in pngrtran.c from 1.5.3: Ensure coefficients are OK for
    png_rgb_to_gray_fixed().

version 1.4.8beta03 [June 6, 2011]
  Check for integer overflow in png_set_rgb_to_gray().

version 1.4.8beta04 [June 7, 2011]
  Fixed uninitialized memory read in png_format_buffer() (Bug report by
    Frank Busse, related to CVE-2004-0421).

version 1.4.8beta05 [June 19, 2011]
  Fixed error in "ACCURATE" 16-to-8 scaling (John Bowler).
  Check for sCAL chunk too short.

version 1.4.8rc01 [June 30, 2011]
  No changes.

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
