summaryrefslogtreecommitdiff
path: root/Build/source/libs/libpng
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/libpng')
-rw-r--r--Build/source/libs/libpng/ANNOUNCE72
-rw-r--r--Build/source/libs/libpng/CHANGES44
-rw-r--r--Build/source/libs/libpng/INSTALL16
-rw-r--r--Build/source/libs/libpng/KNOWNBUG2
-rw-r--r--Build/source/libs/libpng/LICENSE6
-rw-r--r--Build/source/libs/libpng/README29
-rw-r--r--Build/source/libs/libpng/Y2KINFO4
-rw-r--r--Build/source/libs/libpng/libpng-1.2.25.txt (renamed from Build/source/libs/libpng/libpng-1.2.24.txt)8
-rw-r--r--Build/source/libs/libpng/libpng.322
-rw-r--r--Build/source/libs/libpng/libpngpf.34
-rw-r--r--Build/source/libs/libpng/png.52
-rw-r--r--Build/source/libs/libpng/png.c6
-rw-r--r--Build/source/libs/libpng/png.h26
-rw-r--r--Build/source/libs/libpng/pngconf.h4
-rw-r--r--Build/source/libs/libpng/pngpread.c67
-rw-r--r--Build/source/libs/libpng/pngread.c40
-rw-r--r--Build/source/libs/libpng/pngrtran.c19
-rw-r--r--Build/source/libs/libpng/pngrutil.c14
-rw-r--r--Build/source/libs/libpng/pngset.c9
-rw-r--r--Build/source/libs/libpng/pngtest.c2
-rw-r--r--Build/source/libs/libpng/pngwrite.c42
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,