diff options
Diffstat (limited to 'Build/source/libs/libpng')
21 files changed, 269 insertions, 169 deletions
diff --git a/Build/source/libs/libpng/ANNOUNCE b/Build/source/libs/libpng/ANNOUNCE index c49c7b6bd61..afa31b92885 100644 --- a/Build/source/libs/libpng/ANNOUNCE +++ b/Build/source/libs/libpng/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.2.24 - December 14, 2007 +Libpng 1.2.25 - February 18, 2008 This is a public release of libpng, intended for use in production codes. @@ -8,51 +8,59 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - libpng-1.2.24.tar.gz - libpng-1.2.24.tar.bz2 + libpng-1.2.25.tar.gz + libpng-1.2.25.tar.lzma + (Get the lzma codec from <http://tukaani.org/lzma>). + libpng-1.2.25.tar.bz2 Source files with LF line endings (for Unix/Linux) without the "configure" script - libpng-1.2.24-no-config.tar.gz - libpng-1.2.24-no-config.tar.bz2 + libpng-1.2.25-no-config.tar.gz + libpng-1.2.25-no-config.tar.lzma + libpng-1.2.25-no-config.tar.bz2 Source files with CRLF line endings (for Windows), without the "configure" script - lpng1224.zip - lpng1224.tar.bz2 + lpng1225.zip + lpng1225.7z + lpng1225.tar.bz2 Project files - libpng-1.2.24-project-netware.zip - libpng-1.2.24-project-wince.zip + libpng-1.2.25-project-netware.zip + libpng-1.2.25-project-wince.zip Other information: - libpng-1.2.24-README.txt - libpng-1.2.24-KNOWNBUGS.txt - libpng-1.2.24-LICENSE.txt - libpng-1.2.24-Y2K-compliance.txt - -Changes since the last public release (1.2.23): - -version 1.2.24 [December 14, 2007] - - Moved misplaced test for malloc failure in png_set_sPLT(). This bug was - introduced in libpng-1.2.20. - Ifdef out avg_row etc from png.h and pngwrite.c when PNG_NO_WRITE_FILTER - Do not use png_ptr->free_fn and png_ptr->mem_fn in png_destroy_read_struct() - when png_ptr is NULL (Marshall Clow). - Updated handling of symbol prefixes in Makefile.am and configure.ac (Mike - Frysinger). - Removed a useless test and fixed incorrect test in png_set_cHRM_fixed() - (David Hill). - Make sure not to redefine _BSD_SOURCE in pngconf.h - Revised gather.sh and makefile.std in contrib/pngminim to avoid compiling - unused files. - - + libpng-1.2.25-README.txt + libpng-1.2.25-KNOWNBUGS.txt + libpng-1.2.25-LICENSE.txt + libpng-1.2.25-Y2K-compliance.txt + libpng-1.2.25-1.2.24-diff.txt + +Changes since the last public release (1.2.24): + +version 1.2.25 [February 18, 2008] + + Fixed bug with unknown chunk handling, introduced in version 1.2.17 + Prevent gamma from being applied twice. + Fixed some continue-after-malloc-failure errors in pngset.c (David Hill) + Check for info_ptr == NULL in png_read_info() and png_process_data(). + Check for possible use of NULL user_png_ver[] in png_create_read_struct(). + Fix overflow of "msg" in png_decompres_chunk(). + Added libpng-1.2.25.tar.lzma to distribution. Get the lzma codec + from <http://tukaani.org/lzma>. + Added lpng1225.7z to distribution. Get the 7-zip decoder from + from <http://www.7-zip.org>. + Fixed some broken links in the README file. + Refactored png_read_push_finish_row() slightly, trying to satisfy Coverity. + Fixed potential NULL dereference of png_ptr in png_destroy_write_struct(); + clarified potential NULL dereference of png_ptr in png_destroy_read_struct(); + fixed potential NULL dereference of info_ptr in png_handle_bKGD(); + fixed potential NULL dereference of user_png_ver[] in + png_create_write_struct_2(). (Coverity) Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/Build/source/libs/libpng/CHANGES b/Build/source/libs/libpng/CHANGES index a6e5856aa04..7cee1a4607f 100644 --- a/Build/source/libs/libpng/CHANGES +++ b/Build/source/libs/libpng/CHANGES @@ -2032,6 +2032,50 @@ version 1.2.24 [December 14, 2007] Revised gather.sh and makefile.std in contrib/pngminim to avoid compiling unused files. +version 1.2.25beta01 [January 7, 2008] + Fixed bug with unknown chunk handling, introduced in version 1.2.17rc2 + +version 1.2.25beta02 [January 10, 2008] + Prevent gamma from being applied twice. + +version 1.2.25rc01 [January 17, 2008] + No changes. + +version 1.2.25beta03 [January 22, 2008] + Fixed some continue-after-malloc-failure errors in pngset.c (David Hill) + Check for info_ptr == NULL in png_read_info() and png_process_data(). + Check for possible use of NULL user_png_ver[] in png_create_read_struct(). + Change "if (swidth == NULL)" to "if (sheight == NULL)" in png_handle_sCAL + (bug introduced in libpng-1.2.4/1.0.13). + Return from png_destroy_read_struct() if png_ptr_ptr is NULL. + Fix overflow of "msg" in png_decompres_chunk(). + +version 1.2.25beta04 [January 26, 2008] + Work around Coverity bug report by slightly refactoring + png_read_push_finish_row() + +version 1.2.25beta05 [January 31, 2008] + Added libpng-1.2.25beta05.tar.lzma to distribution. Get the lzma codec + from <http://tukaani.org/lzma>. + Added lp1225b05.7z to distribution. Get the 7-zip decoder from + from <http://www.7-zip.org>. + Fixed some broken links in the README file. + +version 1.2.25beta06 [February 6, 2008] + Refactored png_read_push_finish_row() again, trying to satisfy Coverity. + Fixed potential NULL dereference of png_ptr in png_destroy_write_struct(); + clarified potential NULL dereference of png_ptr in png_destroy_read_struct(); + fixed potential NULL dereference of info_ptr in png_handle_bKGD(); + fixed potential NULL dereference of user_png_ver[] in + png_create_write_struct_2(). (Coverity) + +version 1.2.25rc02 [February 10, 2008] + Reset png_ptr->pass in png_read_push_finish_row() before break. + Changed "pass" from png_byte to int. + +version 1.2.25 and 1.0.31 [February 18, 2008] + No changes. + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/Build/source/libs/libpng/INSTALL b/Build/source/libs/libpng/INSTALL index 78c9e02936f..3ab8f42f72f 100644 --- a/Build/source/libs/libpng/INSTALL +++ b/Build/source/libs/libpng/INSTALL @@ -1,5 +1,5 @@ -Installing libpng version 1.2.24 - December 14, 2007 +Installing libpng version 1.2.25 - February 18, 2008 On Unix/Linux and similar systems, you can simply type @@ -44,7 +44,7 @@ to have access to the zlib.h and zconf.h include files that correspond to the version of zlib that's installed. You can rename the directories that you downloaded (they -might be called "libpng-1.2.24" or "lpng109" and "zlib-1.2.1" +might be called "libpng-1.2.25" or "lpng109" and "zlib-1.2.1" or "zlib121") so that you have directories called "zlib" and "libpng". Your directory structure should look like this: @@ -101,9 +101,9 @@ include CMakeLists.txt => "cmake" script makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.elf => Linux/ELF makefile symbol versioning, - gcc, creates libpng12.so.0.1.2.24) + gcc, creates libpng12.so.0.1.2.25) makefile.linux => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.24) + (gcc, creates libpng12.so.0.1.2.25) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with ansi2knr (Requires ansi2knr.c from @@ -125,14 +125,14 @@ include makefile.openbsd => OpenBSD makefile makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.sggcc => Silicon Graphics (gcc, - creates libpng12.so.0.1.2.24) + creates libpng12.so.0.1.2.25) makefile.sunos => Sun makefile makefile.solaris => Solaris 2.X makefile (gcc, - creates libpng12.so.0.1.2.24) + creates libpng12.so.0.1.2.25) makefile.solaris-x86 => Solaris/intelMMX 2.X makefile (gcc, - creates libpng12.so.0.1.2.24) + creates libpng12.so.0.1.2.25) makefile.so9 => Solaris 9 makefile (gcc, - creates libpng12.so.0.1.2.24) + creates libpng12.so.0.1.2.25) makefile.32sunu => Sun Ultra 32-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc diff --git a/Build/source/libs/libpng/KNOWNBUG b/Build/source/libs/libpng/KNOWNBUG index d39dd1ec313..a2f8458ea8f 100644 --- a/Build/source/libs/libpng/KNOWNBUG +++ b/Build/source/libs/libpng/KNOWNBUG @@ -1,5 +1,5 @@ -Known bugs in libpng version 1.2.24 +Known bugs in libpng version 1.2.25 1. February 23, 2006: The custom makefiles don't build libpng with -lz. diff --git a/Build/source/libs/libpng/LICENSE b/Build/source/libs/libpng/LICENSE index 6b81b55a63c..7f5c259be2b 100644 --- a/Build/source/libs/libpng/LICENSE +++ b/Build/source/libs/libpng/LICENSE @@ -8,8 +8,8 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.2.24, December 14, 2007, are -Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are +libpng versions 1.2.6, August 15, 2004, through 1.2.25, February 18, 2008, are +Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors @@ -106,4 +106,4 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -December 14, 2007 +February 18, 2008 diff --git a/Build/source/libs/libpng/README b/Build/source/libs/libpng/README index 6f84c69f0d8..eb072aa52e8 100644 --- a/Build/source/libs/libpng/README +++ b/Build/source/libs/libpng/README @@ -1,11 +1,12 @@ -README for libpng version 1.2.24 - December 14, 2007 (shared library 12.0) +README for libpng version 1.2.25 - February 18, 2008 (shared library 12.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. -Libpng comes in several distribution formats. Get libpng-*.tar.gz -or libpng-*.tar.bz2 if you want UNIX-style line endings in the text -files, or lpng*.zip if you want DOS-style line endings. +Libpng comes in several distribution formats. Get libpng-*.tar.gz, +libpng-*.tar.lzma, or libpng-*.tar.bz2 if you want UNIX-style line +endings in the text files, or lpng*.7z lpng*.zip if you want DOS-style +line endings. Version 0.89 was the first official release of libpng. Don't let the fact that it's the first release fool you. The libpng library has been in @@ -77,12 +78,12 @@ compression library that is useful for more things than just PNG files. You can use zlib as a drop-in replacement for fread() and fwrite() if you are so inclined. -zlib should be available at the same place that libpng is, or at. -ftp://ftp.info-zip.org/pub/infozip/zlib +zlib should be available at the same place that libpng is, or at +ftp://ftp.simplesystems.org/pub/png/src/ You may also want a copy of the PNG specification. It is available as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find -these at http://www.libpng.org/pub/png/documents/ +these at http://www.libpng.org/pub/png/pngdocs.html This code is currently being archived at libpng.sf.net in the [DOWNLOAD] area, and on CompuServe, Lib 20 (PNG SUPPORT) @@ -190,11 +191,11 @@ Files in this distribution: descrip.mms => VMS makefile for MMS or MMK makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.elf => Linux/ELF makefile symbol versioning, - gcc, creates libpng12.so.0.1.2.24) + gcc, creates libpng12.so.0.1.2.25) makefile.linux => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.24) + (gcc, creates libpng12.so.0.1.2.25) makefile.gcmmx => Linux/ELF makefile - (gcc, creates libpng12.so.0.1.2.24, + (gcc, creates libpng12.so.0.1.2.25, uses assembler code tuned for Intel MMX platform) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with @@ -216,12 +217,12 @@ Files in this distribution: makefile.openbsd => OpenBSD makefile makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) makefile.sggcc => Silicon Graphics - (gcc, creates libpng12.so.0.1.2.24) + (gcc, creates libpng12.so.0.1.2.25) makefile.sunos => Sun makefile makefile.solaris => Solaris 2.X makefile - (gcc, creates libpng12.so.0.1.2.24) + (gcc, creates libpng12.so.0.1.2.25) makefile.so9 => Solaris 9 makefile - (gcc, creates libpng12.so.0.1.2.24) + (gcc, creates libpng12.so.0.1.2.25) makefile.32sunu => Sun Ultra 32-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc @@ -256,7 +257,7 @@ Good luck, and happy coding. -Andreas Eric Dilger (former maintainer, 1996-1997) Internet: adilger at enel.ucalgary.ca - Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/ + Web: http://members.shaw.ca/adilger/ -Guy Eric Schalnat (original author and former maintainer, 1995-1996) (formerly of Group 42, Inc) diff --git a/Build/source/libs/libpng/Y2KINFO b/Build/source/libs/libpng/Y2KINFO index 829b511e45c..075599c0d2c 100644 --- a/Build/source/libs/libpng/Y2KINFO +++ b/Build/source/libs/libpng/Y2KINFO @@ -1,13 +1,13 @@ Y2K compliance in libpng: ========================= - December 14, 2007 + February 18, 2008 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and - upward through 1.2.24 are Y2K compliant. It is my belief that earlier + upward through 1.2.25 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer diff --git a/Build/source/libs/libpng/libpng-1.2.24.txt b/Build/source/libs/libpng/libpng-1.2.25.txt index 5b8dc53b970..e922f24e467 100644 --- a/Build/source/libs/libpng/libpng-1.2.24.txt +++ b/Build/source/libs/libpng/libpng-1.2.25.txt @@ -1,9 +1,9 @@ libpng.txt - A description on how to use and modify libpng - libpng version 1.2.24 - December 14, 2007 + libpng version 1.2.25 - February 18, 2008 Updated and distributed by Glenn Randers-Pehrson <glennrp at users.sourceforge.net> - Copyright (c) 1998-2007 Glenn Randers-Pehrson + Copyright (c) 1998-2008 Glenn Randers-Pehrson For conditions of distribution and use, see copyright notice in png.h. @@ -2796,13 +2796,13 @@ application: IX. Y2K Compliance in libpng -December 14, 2007 +February 18, 2008 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.2.24 are Y2K compliant. It is my belief that earlier +upward through 1.2.25 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer that diff --git a/Build/source/libs/libpng/libpng.3 b/Build/source/libs/libpng/libpng.3 index 060cdc1426f..ae397476e1d 100644 --- a/Build/source/libs/libpng/libpng.3 +++ b/Build/source/libs/libpng/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "December 14, 2007" +.TH LIBPNG 3 "February 18, 2008" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.2.24 +libpng \- Portable Network Graphics (PNG) Reference Library 1.2.25 .SH SYNOPSIS \fB #include <png.h>\fP @@ -410,10 +410,10 @@ Following is a copy of the libpng.txt file that accompanies libpng. .SH LIBPNG.TXT libpng.txt - A description on how to use and modify libpng - libpng version 1.2.24 - December 14, 2007 + libpng version 1.2.25 - February 18, 2008 Updated and distributed by Glenn Randers-Pehrson <glennrp at users.sourceforge.net> - Copyright (c) 1998-2007 Glenn Randers-Pehrson + Copyright (c) 1998-2008 Glenn Randers-Pehrson For conditions of distribution and use, see copyright notice in png.h. @@ -3206,13 +3206,13 @@ application: .SH IX. Y2K Compliance in libpng -December 14, 2007 +February 18, 2008 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.2.24 are Y2K compliant. It is my belief that earlier +upward through 1.2.25 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has three year fields. One is a 2-byte unsigned integer that @@ -3426,6 +3426,8 @@ the first widely used release: 1.2.24beta01-02 13 10224 12.so.0.24[.0] 1.2.24rc01 13 10224 12.so.0.24[.0] 1.2.24 13 10224 12.so.0.24[.0] + 1.2.25beta01-06 13 10225 12.so.0.25[.0] + 1.2.25rc01-02 13 10225 12.so.0.25[.0] Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -3481,7 +3483,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.2.24 - December 14, 2007: +Libpng version 1.2.25 - February 18, 2008: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -3502,8 +3504,8 @@ included in the libpng distribution, the latter shall prevail.) If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.2.24, December 14, 2007, are -Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are +libpng versions 1.2.6, August 15, 2004, through 1.2.25, February 18, 2008, are +Copyright (c) 2004,2006-2008 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors @@ -3601,7 +3603,7 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -December 14, 2007 +February 18, 2008 .\" end of man page diff --git a/Build/source/libs/libpng/libpngpf.3 b/Build/source/libs/libpng/libpngpf.3 index 1e360de1295..a5b09b6e4eb 100644 --- a/Build/source/libs/libpng/libpngpf.3 +++ b/Build/source/libs/libpng/libpngpf.3 @@ -1,6 +1,6 @@ -.TH LIBPNGPF 3 "December 14, 2007" +.TH LIBPNGPF 3 "February 18, 2008" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.2.24 +libpng \- Portable Network Graphics (PNG) Reference Library 1.2.25 (private functions) .SH SYNOPSIS \fB#include <png.h>\fP diff --git a/Build/source/libs/libpng/png.5 b/Build/source/libs/libpng/png.5 index 9f33460582c..6b5aa3a03a5 100644 --- a/Build/source/libs/libpng/png.5 +++ b/Build/source/libs/libpng/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "December 14, 2007" +.TH PNG 5 "February 18, 2008" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/Build/source/libs/libpng/png.c b/Build/source/libs/libpng/png.c index 4d25559cf1d..cc31ae8d34c 100644 --- a/Build/source/libs/libpng/png.c +++ b/Build/source/libs/libpng/png.c @@ -13,7 +13,7 @@ #include "png.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef version_1_2_24 Your_png_h_is_not_version_1_2_24; +typedef version_1_2_25 Your_png_h_is_not_version_1_2_25; /* Version information for C files. This had better match the version * string defined in png.h. */ @@ -693,8 +693,8 @@ png_charp PNGAPI png_get_copyright(png_structp png_ptr) { png_ptr = png_ptr; /* silence compiler warning about unused png_ptr */ - return ((png_charp) "\n libpng version 1.2.24 - December 14, 2007\n\ - Copyright (c) 1998-2007 Glenn Randers-Pehrson\n\ + return ((png_charp) "\n libpng version 1.2.25 - February 18, 2008\n\ + Copyright (c) 1998-2008 Glenn Randers-Pehrson\n\ Copyright (c) 1996-1997 Andreas Dilger\n\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n"); } diff --git a/Build/source/libs/libpng/png.h b/Build/source/libs/libpng/png.h index 3ac393ea343..6e538552cb5 100644 --- a/Build/source/libs/libpng/png.h +++ b/Build/source/libs/libpng/png.h @@ -1,15 +1,15 @@ /* png.h - header file for PNG reference library * - * libpng version 1.2.24 - December 14, 2007 - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * libpng version 1.2.25 - February 18, 2008 + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.2.24 - December 14, 2007: Glenn + * libpng versions 0.97, January 1998, through 1.2.25 - February 18, 2008: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -175,6 +175,8 @@ * 1.2.24beta01-02 13 10224 12.so.0.24[.0] * 1.2.24rc01 13 10224 12.so.0.24[.0] * 1.2.24 13 10224 12.so.0.24[.0] + * 1.2.25beta01-06 13 10225 12.so.0.25[.0] + * 1.2.25rc01-02 13 10225 12.so.0.25[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -204,8 +206,8 @@ * If you modify libpng you may insert additional notices immediately following * this sentence. * - * libpng versions 1.2.6, August 15, 2004, through 1.2.24, December 14, 2007, are - * Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are + * libpng versions 1.2.6, August 15, 2004, through 1.2.25, February 18, 2008, are + * Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are * distributed according to the same disclaimer and license as libpng-1.2.5 * with the following individual added to the list of Contributing Authors: * @@ -316,13 +318,13 @@ * Y2K compliance in libpng: * ========================= * - * December 14, 2007 + * February 18, 2008 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.2.24 are Y2K compliant. It is my belief that earlier + * upward through 1.2.25 are Y2K compliant. It is my belief that earlier * versions were also Y2K compliant. * * Libpng only has three year fields. One is a 2-byte unsigned integer @@ -378,9 +380,9 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.2.24" +#define PNG_LIBPNG_VER_STRING "1.2.25" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.2.24 - December 14, 2007\n" + " libpng version 1.2.25 - February 18, 2008\n" #define PNG_LIBPNG_VER_SONUM 0 #define PNG_LIBPNG_VER_DLLNUM 13 @@ -388,7 +390,7 @@ /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ #define PNG_LIBPNG_VER_MAJOR 1 #define PNG_LIBPNG_VER_MINOR 2 -#define PNG_LIBPNG_VER_RELEASE 24 +#define PNG_LIBPNG_VER_RELEASE 25 /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ @@ -416,7 +418,7 @@ * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only * version 1.0.0 was mis-numbered 100 instead of 10000). From * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */ -#define PNG_LIBPNG_VER 10224 /* 1.2.24 */ +#define PNG_LIBPNG_VER 10225 /* 1.2.25 */ #ifndef PNG_VERSION_INFO_ONLY /* include the compression library's header */ @@ -1430,7 +1432,7 @@ struct png_struct_def /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef png_structp version_1_2_24; +typedef png_structp version_1_2_25; typedef png_struct FAR * FAR * png_structpp; diff --git a/Build/source/libs/libpng/pngconf.h b/Build/source/libs/libpng/pngconf.h index c40507446fe..b8e6844c1c8 100644 --- a/Build/source/libs/libpng/pngconf.h +++ b/Build/source/libs/libpng/pngconf.h @@ -1,9 +1,9 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.2.24 - December 14, 2007 + * libpng version 1.2.25 - February 18, 2008 * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) */ diff --git a/Build/source/libs/libpng/pngpread.c b/Build/source/libs/libpng/pngpread.c index 8f4b7d1795c..a02cdfcb238 100644 --- a/Build/source/libs/libpng/pngpread.c +++ b/Build/source/libs/libpng/pngpread.c @@ -1,9 +1,9 @@ /* pngpread.c - read a png file in push mode * - * Last changed in libpng 1.2.23 [November 6, 2007] + * Last changed in libpng 1.2.25 [February 18, 2008] * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) */ @@ -28,7 +28,7 @@ void PNGAPI png_process_data(png_structp png_ptr, png_infop info_ptr, png_bytep buffer, png_size_t buffer_size) { - if(png_ptr == NULL) return; + if(png_ptr == NULL || info_ptr == NULL) return; png_push_restore_buffer(png_ptr, buffer, buffer_size); while (png_ptr->buffer_size) @@ -1018,32 +1018,37 @@ png_read_push_finish_row(png_structp png_ptr) png_ptr->rowbytes + 1); do { - png_ptr->pass++; - if ((png_ptr->pass == 1 && png_ptr->width < 5) || - (png_ptr->pass == 3 && png_ptr->width < 3) || - (png_ptr->pass == 5 && png_ptr->width < 2)) - png_ptr->pass++; - - if (png_ptr->pass > 7) - png_ptr->pass--; - if (png_ptr->pass >= 7) - break; - - png_ptr->iwidth = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - - png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, - png_ptr->iwidth) + 1; - - if (png_ptr->transformations & PNG_INTERLACE) - break; - - png_ptr->num_rows = (png_ptr->height + - png_pass_yinc[png_ptr->pass] - 1 - - png_pass_ystart[png_ptr->pass]) / - png_pass_yinc[png_ptr->pass]; + int pass; + pass = png_ptr->pass; + pass++; + if ((pass == 1 && png_ptr->width < 5) || + (pass == 3 && png_ptr->width < 3) || + (pass == 5 && png_ptr->width < 2)) + pass++; + + if (pass > 7) + pass--; + png_ptr->pass = (png_byte) pass; + if (pass < 7) + { + png_ptr->iwidth = (png_ptr->width + + png_pass_inc[pass] - 1 - + png_pass_start[pass]) / + png_pass_inc[pass]; + + png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, + png_ptr->iwidth) + 1; + + if (png_ptr->transformations & PNG_INTERLACE) + break; + + png_ptr->num_rows = (png_ptr->height + + png_pass_yinc[pass] - 1 - + png_pass_ystart[pass]) / + png_pass_yinc[pass]; + } + else + break; } while (png_ptr->iwidth == 0 || png_ptr->num_rows == 0); } @@ -1517,9 +1522,9 @@ png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 &png_ptr->unknown_chunk, 1); } } -#else - png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1); + else #endif + png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1); png_free(png_ptr, png_ptr->unknown_chunk.data); png_ptr->unknown_chunk.data = NULL; } diff --git a/Build/source/libs/libpng/pngread.c b/Build/source/libs/libpng/pngread.c index 5de5e563550..bd8bcd98abc 100644 --- a/Build/source/libs/libpng/pngread.c +++ b/Build/source/libs/libpng/pngread.c @@ -1,9 +1,9 @@ /* pngread.c - read a PNG file * - * Last changed in libpng 1.2.24 December 14, 2007 + * Last changed in libpng 1.2.25 [February 18, 2008] * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -89,12 +89,18 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn); - i=0; - do + if(user_png_ver) { - if(user_png_ver[i] != png_libpng_ver[i]) + i=0; + do + { + if(user_png_ver[i] != png_libpng_ver[i]) + png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; + } while (png_libpng_ver[i++]); + } + else png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; - } while (png_libpng_ver[i++]); + if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH) { @@ -318,7 +324,7 @@ png_read_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver, void PNGAPI png_read_info(png_structp png_ptr, png_infop info_ptr) { - if(png_ptr == NULL) return; + if(png_ptr == NULL || info_ptr == NULL) return; png_debug(1, "in png_read_info\n"); /* If we haven't checked all of the PNG signature bytes, do so now. */ if (png_ptr->sig_bytes < 8) @@ -1107,11 +1113,14 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, if (png_ptr_ptr != NULL) { png_ptr = *png_ptr_ptr; + } + if (png_ptr == NULL) + return; + #ifdef PNG_USER_MEM_SUPPORTED - free_fn = png_ptr->free_fn; - mem_ptr = png_ptr->mem_ptr; + free_fn = png_ptr->free_fn; + mem_ptr = png_ptr->mem_ptr; #endif - } if (info_ptr_ptr != NULL) info_ptr = *info_ptr_ptr; @@ -1150,16 +1159,13 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, *end_info_ptr_ptr = NULL; } - if (png_ptr != NULL) - { #ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)png_ptr, (png_free_ptr)free_fn, - (png_voidp)mem_ptr); + png_destroy_struct_2((png_voidp)png_ptr, (png_free_ptr)free_fn, + (png_voidp)mem_ptr); #else - png_destroy_struct((png_voidp)png_ptr); + png_destroy_struct((png_voidp)png_ptr); #endif - *png_ptr_ptr = NULL; - } + *png_ptr_ptr = NULL; } /* free all memory used by the read (old method) */ diff --git a/Build/source/libs/libpng/pngrtran.c b/Build/source/libs/libpng/pngrtran.c index cda392154e5..c020b51b3d2 100644 --- a/Build/source/libs/libpng/pngrtran.c +++ b/Build/source/libs/libpng/pngrtran.c @@ -1,9 +1,9 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * Last changed in libpng 1.2.22 [October 13, 2007] + * Last changed in libpng 1.2.25 [February 18, 2008] * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -964,6 +964,14 @@ png_init_read_transformations(png_structp png_ptr) palette[i].blue = png_ptr->gamma_table[palette[i].blue]; } } + /* Prevent the transformations being done again, and make sure + * that the now spurious alpha channel is stripped - the code + * has just reduced background composition and gamma correction + * to a simply alpha channel strip. + */ + png_ptr->transformations &= ~PNG_BACKGROUND; + png_ptr->transformations &= ~PNG_GAMMA; + png_ptr->transformations |= PNG_STRIP_ALPHA; } /* if (png_ptr->background_gamma_type!=PNG_BACKGROUND_GAMMA_UNKNOWN) */ else @@ -1038,6 +1046,9 @@ png_init_read_transformations(png_structp png_ptr) palette[i].green = png_ptr->gamma_table[palette[i].green]; palette[i].blue = png_ptr->gamma_table[palette[i].blue]; } + + /* Done the gamma correction. */ + png_ptr->transformations &= ~PNG_GAMMA; } } #if defined(PNG_READ_BACKGROUND_SUPPORTED) @@ -1075,6 +1086,10 @@ png_init_read_transformations(png_structp png_ptr) png_ptr->trans[i], back.blue); } } + + /* Handled alpha, still need to strip the channel. */ + png_ptr->transformations &= ~PNG_BACKGROUND; + png_ptr->transformations |= PNG_STRIP_ALPHA; } #endif /* PNG_READ_BACKGROUND_SUPPORTED */ diff --git a/Build/source/libs/libpng/pngrutil.c b/Build/source/libs/libpng/pngrutil.c index 5e40aca481e..990e69802b1 100644 --- a/Build/source/libs/libpng/pngrutil.c +++ b/Build/source/libs/libpng/pngrutil.c @@ -1,9 +1,9 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.2.23 [November 6, 2007] + * Last changed in libpng 1.2.25 [February 18, 2008] * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -230,7 +230,7 @@ png_decompress_chunk(png_structp png_ptr, int comp_type, text_size = (png_size_t)(chunklength - (text - chunkdata) - 1); text_size = png_sizeof(msg) > text_size ? text_size : png_sizeof(msg); - png_memcpy(text + prefix_size, msg, text_size + 1); + png_memcpy(text + prefix_size, msg, text_size); break; } if (!png_ptr->zstream.avail_out || ret == Z_STREAM_END) @@ -1393,7 +1393,7 @@ png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) { png_ptr->background.index = buf[0]; - if(info_ptr->num_palette) + if (info_ptr && info_ptr->num_palette) { if(buf[0] > info_ptr->num_palette) { @@ -1792,7 +1792,7 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) #else #ifdef PNG_FIXED_POINT_SUPPORTED sheight = (png_charp)png_malloc_warn(png_ptr, png_strlen(ep) + 1); - if (swidth == NULL) + if (sheight == NULL) { png_warning(png_ptr, "Out of memory while processing sCAL chunk height"); return; @@ -2249,9 +2249,9 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) &png_ptr->unknown_chunk, 1); } } -#else - png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1); + else #endif + png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1); png_free(png_ptr, png_ptr->unknown_chunk.data); png_ptr->unknown_chunk.data = NULL; } diff --git a/Build/source/libs/libpng/pngset.c b/Build/source/libs/libpng/pngset.c index f8f9b7e3b3e..9301dd3274a 100644 --- a/Build/source/libs/libpng/pngset.c +++ b/Build/source/libs/libpng/pngset.c @@ -1,9 +1,9 @@ /* pngset.c - storage of image information into info struct * - * Last changed in libpng 1.2.24 [December 14, 2007] + * Last changed in libpng 1.2.25 [February 18, 2008] * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -488,6 +488,7 @@ png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr, { png_warning(png_ptr, "Memory allocation failed while processing sCAL."); + return; } png_memcpy(info_ptr->scal_s_width, swidth, (png_size_t)length); @@ -499,9 +500,9 @@ png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr, png_free (png_ptr, info_ptr->scal_s_width); png_warning(png_ptr, "Memory allocation failed while processing sCAL."); + return; } png_memcpy(info_ptr->scal_s_height, sheight, (png_size_t)length); - info_ptr->valid |= PNG_INFO_sCAL; #ifdef PNG_FREE_ME_SUPPORTED info_ptr->free_me |= PNG_FREE_SCAL; @@ -983,6 +984,7 @@ png_set_sPLT(png_structp png_ptr, { png_warning(png_ptr, "Out of memory while processing sPLT chunk"); + continue; } png_memcpy(to->name, from->name, length); to->entries = (png_sPLT_entryp)png_malloc_warn(png_ptr, @@ -993,6 +995,7 @@ png_set_sPLT(png_structp png_ptr, "Out of memory while processing sPLT chunk"); png_free(png_ptr,to->name); to->name = NULL; + continue; } png_memcpy(to->entries, from->entries, from->nentries * png_sizeof(png_sPLT_entry)); diff --git a/Build/source/libs/libpng/pngtest.c b/Build/source/libs/libpng/pngtest.c index dd2946bf46f..51073220e2d 100644 --- a/Build/source/libs/libpng/pngtest.c +++ b/Build/source/libs/libpng/pngtest.c @@ -1553,4 +1553,4 @@ main(int argc, char *argv[]) } /* Generate a compiler error if there is an old png.h in the search path. */ -typedef version_1_2_24 your_png_h_is_not_version_1_2_24; +typedef version_1_2_25 your_png_h_is_not_version_1_2_25; diff --git a/Build/source/libs/libpng/pngwrite.c b/Build/source/libs/libpng/pngwrite.c index b1f6a593aae..8b01025f540 100644 --- a/Build/source/libs/libpng/pngwrite.c +++ b/Build/source/libs/libpng/pngwrite.c @@ -1,9 +1,9 @@ /* pngwrite.c - general routines to write a PNG file * - * Last changed in libpng 1.2.24 December 14, 2007 + * Last changed in libpng 1.2.25 [February 18, 2008] * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2007 Glenn Randers-Pehrson + * Copyright (c) 1998-2008 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) */ @@ -482,12 +482,15 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, #endif /* PNG_USER_MEM_SUPPORTED */ png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn); - i=0; - do + if(user_png_ver) { - if(user_png_ver[i] != png_libpng_ver[i]) - png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; - } while (png_libpng_ver[i++]); + i=0; + do + { + if(user_png_ver[i] != png_libpng_ver[i]) + png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; + } while (png_libpng_ver[i++]); + } if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH) { @@ -1000,21 +1003,32 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr) #endif } +#ifdef PNG_USER_MEM_SUPPORTED + if (png_ptr != NULL) + { + free_fn = png_ptr->free_fn; + mem_ptr = png_ptr->mem_ptr; + } +#endif + if (info_ptr_ptr != NULL) info_ptr = *info_ptr_ptr; if (info_ptr != NULL) { - png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1); + if (png_ptr != NULL) + { + png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1); #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) - if (png_ptr->num_chunk_list) - { - png_free(png_ptr, png_ptr->chunk_list); - png_ptr->chunk_list=NULL; - png_ptr->num_chunk_list=0; - } + if (png_ptr->num_chunk_list) + { + png_free(png_ptr, png_ptr->chunk_list); + png_ptr->chunk_list=NULL; + png_ptr->num_chunk_list=0; + } #endif + } #ifdef PNG_USER_MEM_SUPPORTED png_destroy_struct_2((png_voidp)info_ptr, (png_free_ptr)free_fn, |