Libpng 1.4.0beta24 - July 25, 2008 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.0beta24.tar.gz 1.4.0beta24.tar.bz2 Source files with LF line endings (for Unix/Linux) without the "configure" script 1.4.0beta24-no-config.tar.gz 1.4.0beta24-no-config.tar.bz2 Source files with CRLF line endings (for Windows), without the "configure" script lp140b24.zip lp140b24.tar.bz2 Other information: 1.4.0beta24-README.txt 1.4.0beta24-KNOWNBUGS.txt 1.4.0beta24-LICENSE.txt 1.4.0beta24-Y2K-compliance.txt Changes since the last public release (1.2.10): version 1.2.10beta1 [April 15, 2006] Renamed "config.h" to "png_conf.h" and revised Makefile.am to add -DPNG_BUILDING_LIBPNG to compile directive, and modified pngconf.h to include png_conf.h only when PNG_BUILDING_LIBPNG is defined. version 1.2.10beta2 [April 15, 2006] Manually updated Makefile.in and configure. Changed png_conf.h.in back to config.h. version 1.2.10beta3 [April 15, 2006] Change png_conf.h back to config.h in pngconf.h. version 1.2.10beta4 [April 16, 2006] Change PNG_BUILDING_LIBPNG to PNG_CONFIGURE_LIBPNG in config/Makefile*. version 1.2.10beta5 [April 16, 2006] Added a configure check for compiling assembler code in pnggccrd.c version 1.2.10beta6 [April 17, 2006] Revised the configure check for pnggccrd.c Moved -DPNG_CONFIGURE_LIBPNG into @LIBPNG_DEFINES@ Added @LIBPNG_DEFINES@ to arguments when building libpng.sym version 1.2.10beta7 [April 18, 2006] Change "exec_prefix=$prefix" to "exec_prefix=$(prefix)" in makefiles. version 1.2.10rc1 [April 19, 2006] Ensure pngconf.h doesn't define both PNG_USE_PNGGCCRD and PNG_USE_PNGVCRD Fixed "LN_FS" typo in makefile.sco and makefile.solaris. version 1.2.10rc2 [April 19, 2006] Added a backslash between -DPNG_CONFIGURE_LIBPNG and -DPNG_NO_ASSEMBLER_CODE in configure.ac Made the configure warning about versioned symbols less arrogant. version 1.2.10rc3 [April 20, 2006] Added a note in libpng.txt that png_set_sig_bytes(8) can be used when writing an embedded PNG without the 8-byte signature. version 1.4.0beta1 [April 20, 2006] Enabled iTXt support (changes png_struct, thus requires so-number change). Cleaned up PNG_ASSEMBLER_CODE_SUPPORTED vs PNG_MMX_CODE_SUPPORTED Eliminated PNG_1_0_X and PNG_1_2_X macros. Removed deprecated functions png_read_init, png_write_init, png_info_init, png_permit_empty_plte, png_set_gray_1_2_4_to_8, and removed the deprecated macro PNG_MAX_UINT. Moved "PNG_INTERNAL" parts of png.h and pngconf.h into pngintrn.h Removed many WIN32_WCE #ifdefs (Cosmin). Reduced dependency on C-runtime library when on Windows (Simon-Pierre) Replaced sprintf() with png_sprintf() (Simon-Pierre) version 1.4.0beta2 [April 20, 2006] Revised makefiles to avoid making links to libpng.so.* Moved some leftover MMX-related defines from pngconf.h to pngintrn.h Updated scripts/pngos2.def, pngw32.def, and projects/wince/png32ce.def Updated scripts/pngw32.def to comment out MMX functions. version 1.2.11beta1 [May 31, 2006] scripts/libpng.pc.in contained "configure" style version info and would not work with makefiles. The shared-library makefiles were linking to libpng.so.0 instead of libpng.so.3 compatibility as the library. version 1.4.0beta3 [May 10, 2006] Updated scripts/pngw32.def to comment out MMX functions. Added PNG_NO_GET_INT_32 and PNG_NO_SAVE_INT_32 macros. Revised pngconf.h and added pngconf.h.in so makefiles and configure can pass defines to libpng and applications. version 1.4.0beta4 [May 11, 2006] Revised configure.ac, Makefile.am, and many of the makefiles to write their defines in pngconf.h. version 1.4.0beta5 [May 15, 2006] Added a missing semicolon in Makefile.am and Makefile.in Deleted extraneous square brackets from configure.ac version 1.2.11beta2 [June 2, 2006] Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid buffer overflow. Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb)) version 1.4.0beta6 [June 2, 2006] Changed sonum from 0 to 1. Removed unused prototype for png_check_sig() from png.h version 1.2.11beta3 [June 5, 2006] Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin). Removed the accidental leftover Makefile.in~ (Cosmin). Avoided potential buffer overflow and optimized buffer in png_write_sCAL(), png_write_sCAL_s() (Cosmin). Removed the include directories and libraries from CFLAGS and LDFLAGS in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin). version 1.2.11beta4 [June 6, 2006] Allow zero-length IDAT chunks after the entire zlib datastream, but not after another intervening chunk type. version 1.2.11rc2 [June 14, 2006] Added prototypes for PNG_INCH_CONVERSIONS functions to png.h Revised INSTALL and autogen.sh Fixed typo in several makefiles (-W1 should be -Wl) version 1.2.11rc3 [June 15, 2006] Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid reading out of bounds. version 1.4.0beta7 [June 16, 2006] Exported png_write_sig (Cosmin). Optimized buffer in png_handle_cHRM() (Cosmin). Set pHYs = 2835 x 2835 pixels per meter, and added sCAL = 0.352778e-3 x 0.352778e-3 meters, in pngtest.png (Cosmin). Added png_set_benign_errors(), png_benign_error(), png_chunk_benign_error(). Added typedef for png_int_32 and png_uint_32 on 64-bit systems. version 1.4.0beta8 [June 21, 2006] Added demonstration of user chunk support in pngtest.c, to support the public sTER chunk and a private vpAg chunk. version 1.4.0beta9 [July 3, 2006] Removed ordinals from scripts/pngw32.def and removed png_info_int and png_set_gray_1_2_4_to_8 entries. Inline call of png_get_uint_32() in png_get_uint_31(). Use png_get_uint_31() to get vpAg width and height in pngtest.c Removed WINCE and Netware projects. Removed standalone Y2KINFO file. version 1.4.0beta10 [July 12, 2006] Added "all: pngconf.h.in pngconf.h" target to Makefile.am version 1.4.0beta11 [August 19, 2006] Removed AC_FUNC_MALLOC from configure.ac. Added a warning when writing iCCP profile with mismatched profile length. Patched pnggccrd.c to assemble on x86_64 platforms. Moved chunk header reading into a separate function png_read_chunk_header() in pngrutil.c. The chunk header (len+sig) is now serialized in a single operation (Cosmin). Implemented support for I/O states. Added png_ptr member io_state, and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c (Cosmin). Added png_get_io_chunk_name and png_get_io_state to scripts/*.def (Cosmin). Renamed scripts/pngw32.* to scripts/pngwin.* (Cosmin). Removed the include directories and libraries from CFLAGS and LDFLAGS in scripts/makefile.gcc (Cosmin). Used png_save_uint_32() to set vpAg width and height in pngtest.c (Cosmin). Cast to proper type when getting/setting vpAg units in pngtest.c (Cosmin). Added pngintrn.h to the Visual C++ projects (Cosmin). Removed scripts/list (Cosmin). Updated copyright year in scripts/pngwin.def (Cosmin). Removed PNG_TYPECAST_NULL and used standard NULL consistently (Cosmin). Disallowed the user to redefine png_size_t, and enforced a consistent use of png_size_t across libpng (Cosmin). Changed the type of png_ptr->rowbytes, PNG_ROWBYTES() and friends to png_size_t (Cosmin). Removed png_convert_size() and replaced png_sizeof with sizeof (Cosmin). Removed some unnecessary type casts (Cosmin). Changed prototype of png_get_compression_buffer_size() and png_set_compression_buffer_size() to work with png_size_t instead of png_uint_32 (Cosmin). Removed png_memcpy_check() and png_memset_check() (Cosmin). Fixed a typo (png_byte --> png_bytep) in libpng.3 and libpng.txt (Cosmin). Clarified that png_zalloc() does not clear the allocated memory, and png_zalloc() and png_zfree() cannot be PNGAPI (Cosmin). Renamed png_mem_size_t to png_alloc_size_t, fixed its definition in pngconf.h, and used it in all memory allocation functions (Cosmin). Renamed pngintrn.h to pngpriv.h, added a comment at the top of the file mentioning that the symbols declared in that file are private, and updated the scripts and the Visual C++ projects accordingly (Cosmin). Removed circular references between pngconf.h and pngconf.h.in in scripts/makefile.vc*win32 (Cosmin). Removing trailing '.' from the warning and error messages (Cosmin). Added pngdefs.h that is built by makefile or configure, instead of pngconf.h.in (Glenn). Detect and fix attempt to write wrong iCCP profile length. version 1.4.0beta12 [October 19, 2006] Changed "logical" to "bitwise" in the documentation. Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h Add a typecast to stifle compiler warning in pngrutil.c version 1.4.0beta13 [November 10, 2006] Fix potential buffer overflow in sPLT chunk handler. Fix Makefile.am to not try to link to noexistent files. version 1.4.0beta14 [November 15, 2006] Check all exported functions for NULL png_ptr. version 1.4.0beta15 [November 17, 2006] Relocated two misplaced tests for NULL png_ptr. Built Makefile.in with automake-1.9.6 instead of 1.9.2. Build configure with autoconf-2.60 instead of 2.59. Add "install: all" in Makefile.am so "configure; make install" will work. version 1.4.0beta16 [November 17, 2006] Added a typecast in png_zalloc(). version 1.4.0beta17 [December 4, 2006] Changed "new_key[79] = '\0';" to "(*new_key)[79] = '\0';" in pngwutil.c version 1.4.0beta18 [December 7, 2006] Added scripts/CMakeLists.txt version 1.4.0beta19 [May 16, 2007] Revised scripts/CMakeLists.txt Rebuilt configure and Makefile.in with newer tools. Added "png_ptr->num_trans=0" before error return in png_handle_tRNS, to eliminate a vulnerability (CVE-2007-2554, CERT VU#684664) version 1.4.0beta20 [July 9, 2008] Moved several PNG_HAVE_* macros from pngpriv.h to png.h because applications calling set_unknown_chunk_location() need them. Moved several macro definitions from pngpriv.h to pngconf.h Added png_ptr->unknown_chunk to hold working unknown chunk data, so it can be free'ed in case of error. Revised unknown chunk handling in pngrutil.c and pngpread.c to use this structure. Merge with changes to the 1.2.X branch, as of 1.2.19beta10. Revised makefile.mingw Prefer PNG_USE_PNGVCRD when _MSC_VER is defined in pngconf.h version 1.4.0beta21 [July 21, 2008] Moved local array "chunkdata" from pngrutil.c to the png_struct, so it will be freed by png_read_destroy() in case of a read error (Kurt Christensen). version 1.4.0beta22 [July 21, 2008] Change "purpose" and "buffer" to png_ptr->chunkdata to avoid memory leaking. version 1.4.0beta23 [July 22, 2008] Change "chunkdata = NULL" to "png_ptr->chunkdata = NULL" several places in png_decompress_chunk(). version 1.4.0beta24 [July 25, 2008] Change all remaining "chunkdata" to "png_ptr->chunkdata" in png_decompress_chunk(), and remove "chunkdata" from parameter list. Put a call to png_check_chunk_name() in png_read_chunk_header(). Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte. Removed two calls to png_check_chunk_name() occuring later in the process. Define PNG_NO_ERROR_NUMBERS by default in pngconf.h version 1.4.0betaN [future] Build shared libraries with -lz and sometimes -lm. Revised pngvcrd.c for improved efficiency. 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