
Libpng 1.0.32 - April 2, 2008

This is a public release of libpng, intended for use in production codes.

Files available for download:

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

   libpng-1.0.32.tar.gz
   libpng-1.0.32.tar.lzma
     (Get the lzma codec from <http://tukaani.org/lzma>).
   libpng-1.0.32.tar.bz2

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

   libpng-1.0.32-no-config.tar.gz
   libpng-1.0.32-no-config.tar.lzma
   libpng-1.0.32-no-config.tar.bz2

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

   lpng1032.zip
   lpng1032.7z
   lpng1032.tar.bz2

Project files

   libpng-1.0.32-project-netware.zip
   libpng-1.0.32-project-wince.zip

Other information:

   libpng-1.0.32-README.txt
   libpng-1.0.32-KNOWNBUGS.txt
   libpng-1.0.32-LICENSE.txt
   libpng-1.0.32-Y2K-compliance.txt

Changes since the last public release (1.0.31):

version 1.0.32 [April 2, 2008]

  Added missing "(" in pngmem.c.  Bug introduced in libpng-1.2.2/1.0.13
  Refined error message returned from deflateInit2 in pngwutil.c
  Check IHDR length in png_push_read_chunk() before saving it.
  Revised contrib/gregbook to handle premature end-of-file and file
    read errors correctly.
  Free png_ptr->big_row_buf and png_ptr->prev_row before allocating
    new copies in png_read_start_row().
  Avoid reallocating big_row_buf and prev_row when the size does not increase.
  Ifdef out some code that is unused when interlacing is not supported.

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
