
Libpng 1.4.3rc01 - June 21, 2010

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

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

   lp143r01.zip
   lp143r01.7z

Other information:

   1.4.3rc01-README.txt
   1.4.3rc01-LICENSE.txt

Changes since the last public release (1.4.2):

version 1.4.3beta01 [June 18, 2010]
  Added missing quotation marks in the aix block of configure.ac
  The new "vstudio" project was missing from the zip and 7z distributions.
  In pngpread.c: png_push_have_row() add check for new_row > height

version 1.4.3beta02 [June 18, 2010]
  Removed the now-redundant check for out-of-bounds new_row from example.c

version 1.4.3beta03 [June 18, 2010]
  In pngpread.c: png_push_finish_row() add check for too many rows.

version 1.4.3beta04 [June 19, 2010]
  In pngpread.c: png_push_process_row() add check for too many rows.
  Removed the checks added in beta01 and beta03, as they are now redundant.

version 1.4.3beta05 [June 20, 2010]
  Rewrote png_process_IDAT_data to consistently treat extra data as warnings
    and handle end conditions more cleanly.
  Removed the new (beta04) check in png_push_process_row().

version 1.4.3rc01 [June 21, 2010]
  Revised some comments in png_process_IDAT_data().

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
