Compare commits

...

11 Commits

Author SHA1 Message Date
Glenn Randers-Pehrson
30d32302d0 [libpng12] Imported from libpng-1.2.48rc02.tar 2012-03-02 14:27:25 -06:00
Glenn Randers-Pehrson
d2fe2191db [libpng12] Added libpng license text to pnggccrd.c and pngvcrd.c
(requested by Chrome).
2012-02-28 20:01:15 -06:00
Glenn Randers-Pehrson
e02a92bc01 [libpng12] Removed png_free() of unused png_ptr->current_text from pngread.c. 2012-02-27 08:04:06 -06:00
Glenn Randers-Pehrson
a4b640865a [libpng12] Bump version to 1.2.48beta02 2012-02-26 22:04:32 -06:00
Glenn Randers-Pehrson
adbe2c7637 [libpng12] Imported from libpng-1.2.48beta01.tar 2012-02-26 22:04:24 -06:00
Glenn Randers-Pehrson
d0bd02c4ca [libpng12] Fixed off-by-one bug in png_handle_sCAL() when using fixed point
arithmetic, causing out-of-bounds read in png_set_sCAL() because of failure
to copy the string terminators (Franke Busse).
2012-02-26 20:42:28 -06:00
Glenn Randers-Pehrson
440e3a9803 [libpng12] Fixed bug with png_handle_hIST with odd chunk length (Frank Busse). 2012-02-22 07:03:52 -06:00
Glenn Randers-Pehrson
660178760e [libpng12] Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from
pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c;
    now that png_ptr->buffer is inaccessible to applications, the special
    handling is no longer useful.
2012-02-22 07:02:38 -06:00
Glenn Randers-Pehrson
cba5be8307 [libpng12] Removed two useless #ifdef directives from pngread.c and
one from pngrutil.c
2012-02-19 22:04:56 -06:00
Glenn Randers-Pehrson
e0a2c956be [libpng12] Bump version to 1.2.48beta01 2012-02-19 21:37:11 -06:00
Glenn Randers-Pehrson
4ae1de1114 [libpng12] Imported from libpng-1.2.47.tar 2012-02-18 23:49:33 -06:00
58 changed files with 220 additions and 791 deletions

View File

@@ -1,5 +1,5 @@
Libpng 1.2.47rc01 - February 17, 2012
Libpng 1.2.48rc02 - March 2, 2012
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.
@@ -9,44 +9,55 @@ Files available for download:
Source files with LF line endings (for Unix/Linux) and with a
"configure" script
libpng-1.2.47rc01.tar.xz (LZMA-compressed, recommended)
libpng-1.2.47rc01.tar.gz
libpng-1.2.47rc01.tar.bz2
libpng-1.2.48rc02.tar.xz (LZMA-compressed, recommended)
libpng-1.2.48rc02.tar.gz
libpng-1.2.48rc02.tar.bz2
Source files with LF line endings (for Unix/Linux) without the
"configure" script
libpng-1.2.47rc01-no-config.tar.xz (LZMA-compressed, recommended)
libpng-1.2.47rc01-no-config.tar.gz
libpng-1.2.47rc01-no-config.tar.bz2
libpng-1.2.48rc02-no-config.tar.xz (LZMA-compressed, recommended)
libpng-1.2.48rc02-no-config.tar.gz
libpng-1.2.48rc02-no-config.tar.bz2
Source files with CRLF line endings (for Windows), without the
"configure" script
lp1247r01.zip
lp1247r01.7z
lp1247r01.tar.bz2
lp1248r02.zip
lp1248r02.7z
lp1248r02.tar.bz2
Project files
libpng-1.2.47rc01-project-netware.zip
libpng-1.2.47rc01-project-wince.zip
libpng-1.2.48rc02-project-netware.zip
libpng-1.2.48rc02-project-wince.zip
Other information:
libpng-1.2.47rc01-README.txt
libpng-1.2.47rc01-KNOWNBUGS.txt
libpng-1.2.47rc01-LICENSE.txt
libpng-1.2.47rc01-Y2K-compliance.txt
libpng-1.2.47rc01-[previous version]-diff.txt
libpng-1.2.48rc02-README.txt
libpng-1.2.48rc02-KNOWNBUGS.txt
libpng-1.2.48rc02-LICENSE.txt
libpng-1.2.48rc02-Y2K-compliance.txt
libpng-1.2.48rc02-[previous version]-diff.txt
Changes since the last public release (1.2.46):
version 1.2.47beta01 [February 17, 2012]
Updated contrib/pngminus/makefile.std (Samuli Souminen)
version 1.2.47rc01 [February 17, 2012]
Fixed CVE-2011-3026 buffer overrun bug.
version 1.2.48beta01 [Febuary 27, 2012]
Removed two useless #ifdef directives from pngread.c and one from pngrutil.c
Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from
pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c;
now that png_ptr->buffer is inaccessible to applications, the special
handling is no longer useful.
Fixed bug with png_handle_hIST with odd chunk length (Frank Busse).
Fixed incorrect type (int copy should be png_size_t copy) in png_inflate().
Fixed off-by-one bug in png_handle_sCAL() when using fixed point arithmetic,
causing out-of-bounds read in png_set_sCAL() because of failure to copy
the string terminators (Franke Busse).
version 1.2.48rc01 [March 2, 2012]
Removed the png_free() of unused png_ptr->current_text from pngread.c.
Added libpng license text to pnggccrd.c and pngvcrd.c (requested by Chrome).
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement

27
CHANGES
View File

@@ -2739,8 +2739,33 @@ version 1.2.46 and 1.0.56 [July 9, 2011]
version 1.2.47beta01 [February 17, 2012]
Updated contrib/pngminus/makefile.std (Samuli Souminen)
version 1.2.47rc01 [February 17, 2012]
version 1.0.57rc01 and 1.2.47rc01 [February 17, 2012]
Fixed CVE-2011-3026 buffer overrun bug.
Fixed CVE-2011-3026 buffer overrun bug. This bug was introduced when
iCCP chunk support was added at libpng-1.0.6.
version 1.0.57 and 1.2.47 [February 18, 2012]
No changes.
version 1.2.48beta01 [February 27, 2012]
Removed two useless #ifdef directives from pngread.c and one from pngrutil.c
Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from
pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c;
now that png_ptr->buffer is inaccessible to applications, the special
handling is no longer useful.
Fixed bug with png_handle_hIST with odd chunk length (Frank Busse).
Fixed incorrect type (int copy should be png_size_t copy) in png_inflate().
Fixed off-by-one bug in png_handle_sCAL() when using fixed point arithmetic,
causing out-of-bounds read in png_set_sCAL() because of failure to copy
the string terminators. This bug was introduced in libpng-1.0.6 (Frank
Busse).
version 1.2.48rc01 [March 2, 2012]
Removed the png_free() of unused png_ptr->current_text from pngread.c.
Added libpng license text to pnggccrd.c and pngvcrd.c (requested by Chrome).
version 1.2.48rc02 [March 2, 2012]
Removed all of the assembler code from pnggccrd.c and just "return 2;".
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@@ -22,7 +22,7 @@ enable_testing()
set(PNGLIB_MAJOR 1)
set(PNGLIB_MINOR 2)
set(PNGLIB_RELEASE 47)
set(PNGLIB_RELEASE 48)
set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR})
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE})
@@ -215,7 +215,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/libpng-config.in
# SET UP LINKS
if(PNG_SHARED)
set_target_properties(${PNG_LIB_NAME} PROPERTIES
# VERSION 0.${PNGLIB_RELEASE}.1.2.47rc01
# VERSION 0.${PNGLIB_RELEASE}.1.2.48rc02
VERSION 0.${PNGLIB_RELEASE}.0
SOVERSION 0
CLEAN_DIRECT_OUTPUT 1)

View File

@@ -1,5 +1,5 @@
Installing libpng version 1.2.47rc01 - February 17, 2012
Installing libpng version 1.2.48rc02 - March 2, 2012
On Unix/Linux and similar systems, you can simply type
@@ -46,7 +46,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.47rc01" or "libpng12" and "zlib-1.2.3"
might be called "libpng-1.2.48rc02" or "libpng12" and "zlib-1.2.3"
or "zlib123") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this:

View File

@@ -1,5 +1,5 @@
Known bugs in libpng version 1.2.47rc01
Known bugs in libpng version 1.2.48rc02
1. February 23, 2006: The custom makefiles don't build libpng with -lz.

View File

@@ -10,7 +10,7 @@ this sentence.
This code is released under the libpng license.
libpng versions 1.2.6, August 15, 2004, through 1.2.47rc01, February 17, 2012, are
libpng versions 1.2.6, August 15, 2004, through 1.2.48rc02, March 2, 2012, are
Copyright (c) 2004, 2006-2009 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
@@ -108,4 +108,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
February 17, 2012
March 2, 2012

View File

@@ -89,7 +89,7 @@ EXTRA_DIST= \
${srcdir}/contrib/pngsuite/* \
${srcdir}/contrib/visupng/* \
$(TESTS) \
example.c libpng-1.2.47rc01.txt pnggccrd.c pngvcrd.c
example.c libpng-1.2.48rc02.txt pnggccrd.c pngvcrd.c
CLEANFILES= pngout.png libpng12.pc libpng12-config libpng.vers \
libpng.sym

View File

@@ -354,7 +354,7 @@ EXTRA_DIST = \
${srcdir}/contrib/pngsuite/* \
${srcdir}/contrib/visupng/* \
$(TESTS) \
example.c libpng-1.2.47rc01.txt pnggccrd.c pngvcrd.c
example.c libpng-1.2.48rc02.txt pnggccrd.c pngvcrd.c
CLEANFILES = pngout.png libpng12.pc libpng12-config libpng.vers \
libpng.sym

14
README
View File

@@ -1,4 +1,4 @@
README for libpng version 1.2.47rc01 - February 17, 2012 (shared library 12.0)
README for libpng version 1.2.48rc02 - March 2, 2012 (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.
@@ -199,11 +199,11 @@ Files in this distribution:
makefile.std => Generic UNIX makefile (cc, creates static
libpng.a)
makefile.elf => Linux/ELF gcc makefile symbol versioning,
creates libpng12.so.0.1.2.47rc01)
creates libpng12.so.0.1.2.48rc02)
makefile.linux => Linux/ELF makefile (gcc, creates
libpng12.so.0.1.2.47rc01)
libpng12.so.0.1.2.48rc02)
makefile.gcmmx => Linux/ELF makefile (gcc, creates
libpng12.so.0.1.2.47rc01, previously
libpng12.so.0.1.2.48rc02, previously
used assembler code tuned for Intel MMX
platform)
makefile.gcc => Generic makefile (gcc, creates static
@@ -228,12 +228,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.47rc01)
(gcc, creates libpng12.so.0.1.2.48rc02)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
(gcc, creates libpng12.so.0.1.2.47rc01)
(gcc, creates libpng12.so.0.1.2.48rc02)
makefile.so9 => Solaris 9 makefile
(gcc, creates libpng12.so.0.1.2.47rc01)
(gcc, creates libpng12.so.0.1.2.48rc02)
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

View File

@@ -1,13 +1,13 @@
Y2K compliance in libpng:
=========================
February 17, 2012
March 2, 2012
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.47rc01 are Y2K compliant. It is my belief that earlier
upward through 1.2.48rc02 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

24
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.65 for libpng 1.2.47rc01.
# Generated by GNU Autoconf 2.65 for libpng 1.2.48rc02.
#
# Report bugs to <png-mng-implement@lists.sourceforge.net>.
#
@@ -701,8 +701,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libpng'
PACKAGE_TARNAME='libpng'
PACKAGE_VERSION='1.2.47rc01'
PACKAGE_STRING='libpng 1.2.47rc01'
PACKAGE_VERSION='1.2.48rc02'
PACKAGE_STRING='libpng 1.2.48rc02'
PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
PACKAGE_URL=''
@@ -1435,7 +1435,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures libpng 1.2.47rc01 to adapt to many kinds of systems.
\`configure' configures libpng 1.2.48rc02 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1505,7 +1505,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of libpng 1.2.47rc01:";;
short | recursive ) echo "Configuration of libpng 1.2.48rc02:";;
esac
cat <<\_ACEOF
@@ -1612,7 +1612,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
libpng configure 1.2.47rc01
libpng configure 1.2.48rc02
generated by GNU Autoconf 2.65
Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2037,7 +2037,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by libpng $as_me 1.2.47rc01, which was
It was created by libpng $as_me 1.2.48rc02, which was
generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@
@@ -2845,7 +2845,7 @@ fi
# Define the identity of the package.
PACKAGE='libpng'
VERSION='1.2.47rc01'
VERSION='1.2.48rc02'
cat >>confdefs.h <<_ACEOF
@@ -2909,10 +2909,10 @@ fi
PNGLIB_VERSION=1.2.47rc01
PNGLIB_VERSION=1.2.48rc02
PNGLIB_MAJOR=1
PNGLIB_MINOR=2
PNGLIB_RELEASE=47
PNGLIB_RELEASE=48
@@ -12079,7 +12079,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libpng $as_me 1.2.47rc01, which was
This file was extended by libpng $as_me 1.2.48rc02, which was
generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12145,7 +12145,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libpng config.status 1.2.47rc01
libpng config.status 1.2.48rc02
configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"

View File

@@ -18,15 +18,15 @@ AC_PREREQ(2.59)
dnl Version number stuff here:
AC_INIT([libpng], [1.2.47rc01], [png-mng-implement@lists.sourceforge.net])
AC_INIT([libpng], [1.2.48rc02], [png-mng-implement@lists.sourceforge.net])
AM_INIT_AUTOMAKE
dnl stop configure from automagically running automake
AM_MAINTAINER_MODE
PNGLIB_VERSION=1.2.47rc01
PNGLIB_VERSION=1.2.48rc02
PNGLIB_MAJOR=1
PNGLIB_MINOR=2
PNGLIB_RELEASE=47
PNGLIB_RELEASE=48
dnl End of version number stuff

View File

@@ -1,6 +1,6 @@
libpng.txt - A description on how to use and modify libpng
libpng version 1.2.47rc01 - February 17, 2012
libpng version 1.2.48rc02 - March 2, 2012
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2009 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@ libpng.txt - A description on how to use and modify libpng
Based on:
libpng versions 0.97, January 1998, through 1.2.47rc01 - February 17, 2012
libpng versions 0.97, January 1998, through 1.2.48rc02 - March 2, 2012
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2009 Glenn Randers-Pehrson
@@ -878,7 +878,7 @@ things.
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
added. It expands the sample depth without changing tRNS to alpha.
As of libpng version 1.2.47rc01, not all possible expansions are supported.
As of libpng version 1.2.48rc02, not all possible expansions are supported.
In the following table, the 01 means grayscale with depth<8, 31 means
indexed with depth<8, other numerals represent the color type, "T" means
@@ -3179,13 +3179,13 @@ Other rules can be inferred by inspecting the libpng source.
XIII. Y2K Compliance in libpng
February 17, 2012
March 2, 2012
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.47rc01 are Y2K compliant. It is my belief that earlier
upward through 1.2.48rc02 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

View File

@@ -1,6 +1,6 @@
.TH LIBPNG 3 "February 17, 2012"
.TH LIBPNG 3 "March 2, 2012"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.47rc01
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.48rc02
.SH SYNOPSIS
\fI\fB
@@ -821,7 +821,7 @@ 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.47rc01 - February 17, 2012
libpng version 1.2.48rc02 - March 2, 2012
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2009 Glenn Randers-Pehrson
@@ -832,7 +832,7 @@ libpng.txt - A description on how to use and modify libpng
Based on:
libpng versions 0.97, January 1998, through 1.2.47rc01 - February 17, 2012
libpng versions 0.97, January 1998, through 1.2.48rc02 - March 2, 2012
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2009 Glenn Randers-Pehrson
@@ -1699,7 +1699,7 @@ things.
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
added. It expands the sample depth without changing tRNS to alpha.
As of libpng version 1.2.47rc01, not all possible expansions are supported.
As of libpng version 1.2.48rc02, not all possible expansions are supported.
In the following table, the 01 means grayscale with depth<8, 31 means
indexed with depth<8, other numerals represent the color type, "T" means
@@ -4000,13 +4000,13 @@ Other rules can be inferred by inspecting the libpng source.
.SH XIII. Y2K Compliance in libpng
February 17, 2012
March 2, 2012
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.47rc01 are Y2K compliant. It is my belief that earlier
upward through 1.2.48rc02 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
@@ -4317,6 +4317,11 @@ the first widely used release:
1.2.46 13 10246 12.so.0.46[.0]
1.2.47beta01 13 10247 12.so.0.47[.0]
1.2.47rc01 13 10247 12.so.0.47[.0]
1.0.57rc01 10 10057 10.so.0.57[.0]
1.2.47 13 10247 12.so.0.47[.0]
1.0.57 10 10057 10.so.0.57[.0]
1.2.48beta01 13 10248 12.so.0.48[.0]
1.2.48rc01 13 10248 12.so.0.48[.0]
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
@@ -4372,7 +4377,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.2.47rc01 - February 17, 2012:
Libpng version 1.2.48rc02 - March 2, 2012:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
@@ -4395,7 +4400,7 @@ this sentence.
This code is released under the libpng license.
libpng versions 1.2.6, August 15, 2004, through 1.2.47rc01, February 17, 2012, are
libpng versions 1.2.6, August 15, 2004, through 1.2.48rc02, March 2, 2012, 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
@@ -4494,7 +4499,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
February 17, 2012
March 2, 2012
.\" end of man page

View File

@@ -1,6 +1,6 @@
.TH LIBPNGPF 3 "February 17, 2012"
.TH LIBPNGPF 3 "March 2, 2012"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.47rc01
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.48rc02
(private functions)
.SH SYNOPSIS
\fB#include <png.h>\fP

2
png.5
View File

@@ -1,4 +1,4 @@
.TH PNG 5 "February 17, 2012"
.TH PNG 5 "March 2, 2012"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION

6
png.c
View File

@@ -17,7 +17,7 @@
#include "png.h"
/* Generate a compiler error if there is an old png.h in the search path. */
typedef version_1_2_47rc01 Your_png_h_is_not_version_1_2_47rc01;
typedef version_1_2_48rc02 Your_png_h_is_not_version_1_2_48rc02;
/* Version information for C files. This had better match the version
* string defined in png.h.
@@ -724,13 +724,13 @@ png_get_copyright(png_structp png_ptr)
#else
#ifdef __STDC__
return ((png_charp) PNG_STRING_NEWLINE \
"libpng version 1.2.47rc01 - February 17, 2012" PNG_STRING_NEWLINE \
"libpng version 1.2.48rc02 - March 2, 2012" PNG_STRING_NEWLINE \
"Copyright (c) 1998-2011 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
PNG_STRING_NEWLINE);
#else
return ((png_charp) "libpng version 1.2.47rc01 - February 17, 2012\
return ((png_charp) "libpng version 1.2.48rc02 - March 2, 2012\
Copyright (c) 1998-2011 Glenn Randers-Pehrson\
Copyright (c) 1996-1997 Andreas Dilger\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.");

27
png.h
View File

@@ -1,6 +1,6 @@
/* png.h - header file for PNG reference library
*
* libpng version 1.2.47rc01 - February 17, 2012
* libpng version 1.2.48rc02 - March 2, 2012
* Copyright (c) 1998-2012 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.)
@@ -10,7 +10,7 @@
* 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.47rc01 - February 17, 2012: Glenn
* libpng versions 0.97, January 1998, through 1.2.48rc02 - March 2, 2012: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -272,6 +272,11 @@
* 1.2.46 13 10246 12.so.0.46[.0]
* 1.2.47beta01 13 10247 12.so.0.47[.0]
* 1.2.47rc01 13 10247 12.so.0.47[.0]
* 1.0.57rc01 10 10057 10.so.0.57[.0]
* 1.2.47 13 10247 12.so.0.47[.0]
* 1.0.57 10 10057 10.so.0.57[.0]
* 1.2.48beta01 13 10248 12.so.0.48[.0]
* 1.2.48rc01 13 10248 12.so.0.48[.0]
*
* Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be
@@ -303,7 +308,7 @@
*
* This code is released under the libpng license.
*
* libpng versions 1.2.6, August 15, 2004, through 1.2.47rc01, February 17, 2012, are
* libpng versions 1.2.6, August 15, 2004, through 1.2.48rc02, March 2, 2012, are
* Copyright (c) 2004, 2006-2011 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:
@@ -415,13 +420,13 @@
* Y2K compliance in libpng:
* =========================
*
* February 17, 2012
* March 2, 2012
*
* 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.47rc01 are Y2K compliant. It is my belief that earlier
* upward through 1.2.48rc02 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
@@ -477,9 +482,9 @@
*/
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.2.47rc01"
#define PNG_LIBPNG_VER_STRING "1.2.48rc02"
#define PNG_HEADER_VERSION_STRING \
" libpng version 1.2.47rc01 - February 17, 2012\n"
" libpng version 1.2.48rc02 - March 2, 2012\n"
#define PNG_LIBPNG_VER_SONUM 0
#define PNG_LIBPNG_VER_DLLNUM 13
@@ -487,12 +492,12 @@
/* 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 47
#define PNG_LIBPNG_VER_RELEASE 48
/* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
*/
#define PNG_LIBPNG_VER_BUILD 01
#define PNG_LIBPNG_VER_BUILD 02
/* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1
@@ -517,7 +522,7 @@
* 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 10247 /* 1.2.47 */
#define PNG_LIBPNG_VER 10248 /* 1.2.48 */
#ifndef PNG_VERSION_INFO_ONLY
/* Include the compression library's header */
@@ -1557,7 +1562,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_47rc01;
typedef png_structp version_1_2_48rc02;
typedef png_struct FAR * FAR * png_structpp;

View File

@@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
* libpng version 1.2.47rc01 - February 17, 2012
* libpng version 1.2.48rc02 - March 2, 2012
* Copyright (c) 1998-2012 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.)

View File

@@ -1,6 +1,15 @@
/* pnggccrd.c was removed from libpng-1.2.20. */
/* This code snippet is for use by configure's compilation test. */
/* pnggccrd.c
*
* Last changed in libpng 1.2.48 [March 2, 2012]
* Copyright (c) 1998-2012 Glenn Randers-Pehrson
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
* and license in png.h
*
* This code snippet is for use by configure's compilation test. The
* remainder of the file was removed from libpng-1.2.20.
*/
#if (!defined _MSC_VER) && \
defined(PNG_ASSEMBLER_CODE_SUPPORTED) && \
@@ -8,96 +17,9 @@
int PNGAPI png_dummy_mmx_support(void);
static int _mmx_supported = 2; // 0: no MMX; 1: MMX supported; 2: not tested
int PNGAPI
png_dummy_mmx_support(void) __attribute__((noinline));
int PNGAPI
png_dummy_mmx_support(void)
int PNGAPI png_dummy_mmx_support(void)
{
int result;
#ifdef PNG_MMX_CODE_SUPPORTED // superfluous, but what the heck
__asm__ __volatile__ (
#ifdef __x86_64__
"pushq %%rbx \n\t" // rbx gets clobbered by CPUID instruction
"pushq %%rcx \n\t" // so does rcx...
"pushq %%rdx \n\t" // ...and rdx (but rcx & rdx safe on Linux)
"pushfq \n\t" // save Eflag to stack
"popq %%rax \n\t" // get Eflag from stack into rax
"movq %%rax, %%rcx \n\t" // make another copy of Eflag in rcx
"xorl $0x200000, %%eax \n\t" // toggle ID bit in Eflag (i.e., bit 21)
"pushq %%rax \n\t" // save modified Eflag back to stack
"popfq \n\t" // restore modified value to Eflag reg
"pushfq \n\t" // save Eflag to stack
"popq %%rax \n\t" // get Eflag from stack
"pushq %%rcx \n\t" // save original Eflag to stack
"popfq \n\t" // restore original Eflag
#else
"pushl %%ebx \n\t" // ebx gets clobbered by CPUID instruction
"pushl %%ecx \n\t" // so does ecx...
"pushl %%edx \n\t" // ...and edx (but ecx & edx safe on Linux)
"pushfl \n\t" // save Eflag to stack
"popl %%eax \n\t" // get Eflag from stack into eax
"movl %%eax, %%ecx \n\t" // make another copy of Eflag in ecx
"xorl $0x200000, %%eax \n\t" // toggle ID bit in Eflag (i.e., bit 21)
"pushl %%eax \n\t" // save modified Eflag back to stack
"popfl \n\t" // restore modified value to Eflag reg
"pushfl \n\t" // save Eflag to stack
"popl %%eax \n\t" // get Eflag from stack
"pushl %%ecx \n\t" // save original Eflag to stack
"popfl \n\t" // restore original Eflag
#endif
"xorl %%ecx, %%eax \n\t" // compare new Eflag with original Eflag
"jz 0f \n\t" // if same, CPUID instr. is not supported
"xorl %%eax, %%eax \n\t" // set eax to zero
// ".byte 0x0f, 0xa2 \n\t" // CPUID instruction (two-byte opcode)
"cpuid \n\t" // get the CPU identification info
"cmpl $1, %%eax \n\t" // make sure eax return non-zero value
"jl 0f \n\t" // if eax is zero, MMX is not supported
"xorl %%eax, %%eax \n\t" // set eax to zero and...
"incl %%eax \n\t" // ...increment eax to 1. This pair is
// faster than the instruction "mov eax, 1"
"cpuid \n\t" // get the CPU identification info again
"andl $0x800000, %%edx \n\t" // mask out all bits but MMX bit (23)
"cmpl $0, %%edx \n\t" // 0 = MMX not supported
"jz 0f \n\t" // non-zero = yes, MMX IS supported
"movl $1, %%eax \n\t" // set return value to 1
"jmp 1f \n\t" // DONE: have MMX support
"0: \n\t" // .NOT_SUPPORTED: target label for jump instructions
"movl $0, %%eax \n\t" // set return value to 0
"1: \n\t" // .RETURN: target label for jump instructions
#ifdef __x86_64__
"popq %%rdx \n\t" // restore rdx
"popq %%rcx \n\t" // restore rcx
"popq %%rbx \n\t" // restore rbx
#else
"popl %%edx \n\t" // restore edx
"popl %%ecx \n\t" // restore ecx
"popl %%ebx \n\t" // restore ebx
#endif
// "ret \n\t" // DONE: no MMX support
// (fall through to standard C "ret")
: "=a" (result) // output list
: // any variables used on input (none)
// no clobber list
// , "%ebx", "%ecx", "%edx" // GRR: we handle these manually
// , "memory" // if write to a variable gcc thought was in a reg
// , "cc" // "condition codes" (flag bits)
);
_mmx_supported = result;
#else
_mmx_supported = 0;
#endif /* PNG_MMX_CODE_SUPPORTED */
return _mmx_supported;
/* 0: no MMX; 1: MMX supported; 2: not tested */
return 2;
}
#endif

View File

@@ -71,30 +71,6 @@ png_process_some_data(png_structp png_ptr, png_infop info_ptr)
break;
}
#ifdef PNG_READ_tEXt_SUPPORTED
case PNG_READ_tEXt_MODE:
{
png_push_read_tEXt(png_ptr, info_ptr);
break;
}
#endif
#ifdef PNG_READ_zTXt_SUPPORTED
case PNG_READ_zTXt_MODE:
{
png_push_read_zTXt(png_ptr, info_ptr);
break;
}
#endif
#ifdef PNG_READ_iTXt_SUPPORTED
case PNG_READ_iTXt_MODE:
{
png_push_read_iTXt(png_ptr, info_ptr);
break;
}
#endif
case PNG_SKIP_MODE:
{
png_push_crc_finish(png_ptr);
@@ -529,7 +505,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
return;
}
png_push_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
}
#endif
@@ -542,7 +518,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
return;
}
png_push_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
}
#endif
@@ -555,7 +531,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
return;
}
png_push_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
}
#endif
@@ -566,7 +542,7 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
png_push_save_buffer(png_ptr);
return;
}
png_push_handle_unknown(png_ptr, info_ptr, png_ptr->push_length);
png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length);
}
png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
@@ -1201,515 +1177,6 @@ png_read_push_finish_row(png_structp png_ptr)
#endif /* PNG_READ_INTERLACING_SUPPORTED */
}
#ifdef PNG_READ_tEXt_SUPPORTED
void /* PRIVATE */
png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
length)
{
if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
{
png_error(png_ptr, "Out of place tEXt");
info_ptr = info_ptr; /* To quiet some compiler warnings */
}
#ifdef PNG_MAX_MALLOC_64K
png_ptr->skip_length = 0; /* This may not be necessary */
if (length > (png_uint_32)65535L) /* Can't hold entire string in memory */
{
png_warning(png_ptr, "tEXt chunk too large to fit in memory");
png_ptr->skip_length = length - (png_uint_32)65535L;
length = (png_uint_32)65535L;
}
#endif
png_ptr->current_text = (png_charp)png_malloc(png_ptr,
(png_uint_32)(length + 1));
png_ptr->current_text[length] = '\0';
png_ptr->current_text_ptr = png_ptr->current_text;
png_ptr->current_text_size = (png_size_t)length;
png_ptr->current_text_left = (png_size_t)length;
png_ptr->process_mode = PNG_READ_tEXt_MODE;
}
void /* PRIVATE */
png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
{
if (png_ptr->buffer_size && png_ptr->current_text_left)
{
png_size_t text_size;
if (png_ptr->buffer_size < png_ptr->current_text_left)
text_size = png_ptr->buffer_size;
else
text_size = png_ptr->current_text_left;
png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
png_ptr->current_text_left -= text_size;
png_ptr->current_text_ptr += text_size;
}
if (!(png_ptr->current_text_left))
{
png_textp text_ptr;
png_charp text;
png_charp key;
int ret;
if (png_ptr->buffer_size < 4)
{
png_push_save_buffer(png_ptr);
return;
}
png_push_crc_finish(png_ptr);
#ifdef PNG_MAX_MALLOC_64K
if (png_ptr->skip_length)
return;
#endif
key = png_ptr->current_text;
for (text = key; *text; text++)
/* Empty loop */ ;
if (text < key + png_ptr->current_text_size)
text++;
text_ptr = (png_textp)png_malloc(png_ptr,
(png_uint_32)png_sizeof(png_text));
text_ptr->compression = PNG_TEXT_COMPRESSION_NONE;
text_ptr->key = key;
#ifdef PNG_iTXt_SUPPORTED
text_ptr->lang = NULL;
text_ptr->lang_key = NULL;
#endif
text_ptr->text = text;
ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
png_free(png_ptr, key);
png_free(png_ptr, text_ptr);
png_ptr->current_text = NULL;
if (ret)
png_warning(png_ptr, "Insufficient memory to store text chunk.");
}
}
#endif
#ifdef PNG_READ_zTXt_SUPPORTED
void /* PRIVATE */
png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
length)
{
if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
{
png_error(png_ptr, "Out of place zTXt");
info_ptr = info_ptr; /* To quiet some compiler warnings */
}
#ifdef PNG_MAX_MALLOC_64K
/* We can't handle zTXt chunks > 64K, since we don't have enough space
* to be able to store the uncompressed data. Actually, the threshold
* is probably around 32K, but it isn't as definite as 64K is.
*/
if (length > (png_uint_32)65535L)
{
png_warning(png_ptr, "zTXt chunk too large to fit in memory");
png_push_crc_skip(png_ptr, length);
return;
}
#endif
png_ptr->current_text = (png_charp)png_malloc(png_ptr,
(png_uint_32)(length + 1));
png_ptr->current_text[length] = '\0';
png_ptr->current_text_ptr = png_ptr->current_text;
png_ptr->current_text_size = (png_size_t)length;
png_ptr->current_text_left = (png_size_t)length;
png_ptr->process_mode = PNG_READ_zTXt_MODE;
}
void /* PRIVATE */
png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
{
if (png_ptr->buffer_size && png_ptr->current_text_left)
{
png_size_t text_size;
if (png_ptr->buffer_size < (png_uint_32)png_ptr->current_text_left)
text_size = png_ptr->buffer_size;
else
text_size = png_ptr->current_text_left;
png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
png_ptr->current_text_left -= text_size;
png_ptr->current_text_ptr += text_size;
}
if (!(png_ptr->current_text_left))
{
png_textp text_ptr;
png_charp text;
png_charp key;
int ret;
png_size_t text_size, key_size;
if (png_ptr->buffer_size < 4)
{
png_push_save_buffer(png_ptr);
return;
}
png_push_crc_finish(png_ptr);
key = png_ptr->current_text;
for (text = key; *text; text++)
/* Empty loop */ ;
/* zTXt can't have zero text */
if (text >= key + png_ptr->current_text_size)
{
png_ptr->current_text = NULL;
png_free(png_ptr, key);
return;
}
text++;
if (*text != PNG_TEXT_COMPRESSION_zTXt) /* Check compression byte */
{
png_ptr->current_text = NULL;
png_free(png_ptr, key);
return;
}
text++;
png_ptr->zstream.next_in = (png_bytep )text;
png_ptr->zstream.avail_in = (uInt)(png_ptr->current_text_size -
(text - key));
png_ptr->zstream.next_out = png_ptr->zbuf;
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
key_size = text - key;
text_size = 0;
text = NULL;
ret = Z_STREAM_END;
while (png_ptr->zstream.avail_in)
{
ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH);
if (ret != Z_OK && ret != Z_STREAM_END)
{
inflateReset(&png_ptr->zstream);
png_ptr->zstream.avail_in = 0;
png_ptr->current_text = NULL;
png_free(png_ptr, key);
png_free(png_ptr, text);
return;
}
if (!(png_ptr->zstream.avail_out) || ret == Z_STREAM_END)
{
if (text == NULL)
{
text = (png_charp)png_malloc(png_ptr,
(png_uint_32)(png_ptr->zbuf_size
- png_ptr->zstream.avail_out + key_size + 1));
png_memcpy(text + key_size, png_ptr->zbuf,
png_ptr->zbuf_size - png_ptr->zstream.avail_out);
png_memcpy(text, key, key_size);
text_size = key_size + png_ptr->zbuf_size -
png_ptr->zstream.avail_out;
*(text + text_size) = '\0';
}
else
{
png_charp tmp;
tmp = text;
text = (png_charp)png_malloc(png_ptr, text_size +
(png_uint_32)(png_ptr->zbuf_size
- png_ptr->zstream.avail_out + 1));
png_memcpy(text, tmp, text_size);
png_free(png_ptr, tmp);
png_memcpy(text + text_size, png_ptr->zbuf,
png_ptr->zbuf_size - png_ptr->zstream.avail_out);
text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
*(text + text_size) = '\0';
}
if (ret != Z_STREAM_END)
{
png_ptr->zstream.next_out = png_ptr->zbuf;
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
}
}
else
{
break;
}
if (ret == Z_STREAM_END)
break;
}
inflateReset(&png_ptr->zstream);
png_ptr->zstream.avail_in = 0;
if (ret != Z_STREAM_END)
{
png_ptr->current_text = NULL;
png_free(png_ptr, key);
png_free(png_ptr, text);
return;
}
png_ptr->current_text = NULL;
png_free(png_ptr, key);
key = text;
text += key_size;
text_ptr = (png_textp)png_malloc(png_ptr,
(png_uint_32)png_sizeof(png_text));
text_ptr->compression = PNG_TEXT_COMPRESSION_zTXt;
text_ptr->key = key;
#ifdef PNG_iTXt_SUPPORTED
text_ptr->lang = NULL;
text_ptr->lang_key = NULL;
#endif
text_ptr->text = text;
ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
png_free(png_ptr, key);
png_free(png_ptr, text_ptr);
if (ret)
png_warning(png_ptr, "Insufficient memory to store text chunk.");
}
}
#endif
#ifdef PNG_READ_iTXt_SUPPORTED
void /* PRIVATE */
png_push_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
length)
{
if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
{
png_error(png_ptr, "Out of place iTXt");
info_ptr = info_ptr; /* To quiet some compiler warnings */
}
#ifdef PNG_MAX_MALLOC_64K
png_ptr->skip_length = 0; /* This may not be necessary */
if (length > (png_uint_32)65535L) /* Can't hold entire string in memory */
{
png_warning(png_ptr, "iTXt chunk too large to fit in memory");
png_ptr->skip_length = length - (png_uint_32)65535L;
length = (png_uint_32)65535L;
}
#endif
png_ptr->current_text = (png_charp)png_malloc(png_ptr,
(png_uint_32)(length + 1));
png_ptr->current_text[length] = '\0';
png_ptr->current_text_ptr = png_ptr->current_text;
png_ptr->current_text_size = (png_size_t)length;
png_ptr->current_text_left = (png_size_t)length;
png_ptr->process_mode = PNG_READ_iTXt_MODE;
}
void /* PRIVATE */
png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr)
{
if (png_ptr->buffer_size && png_ptr->current_text_left)
{
png_size_t text_size;
if (png_ptr->buffer_size < png_ptr->current_text_left)
text_size = png_ptr->buffer_size;
else
text_size = png_ptr->current_text_left;
png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size);
png_ptr->current_text_left -= text_size;
png_ptr->current_text_ptr += text_size;
}
if (!(png_ptr->current_text_left))
{
png_textp text_ptr;
png_charp key;
int comp_flag;
png_charp lang;
png_charp lang_key;
png_charp text;
int ret;
if (png_ptr->buffer_size < 4)
{
png_push_save_buffer(png_ptr);
return;
}
png_push_crc_finish(png_ptr);
#ifdef PNG_MAX_MALLOC_64K
if (png_ptr->skip_length)
return;
#endif
key = png_ptr->current_text;
for (lang = key; *lang; lang++)
/* Empty loop */ ;
if (lang < key + png_ptr->current_text_size - 3)
lang++;
comp_flag = *lang++;
lang++; /* Skip comp_type, always zero */
for (lang_key = lang; *lang_key; lang_key++)
/* Empty loop */ ;
lang_key++; /* Skip NUL separator */
text=lang_key;
if (lang_key < key + png_ptr->current_text_size - 1)
{
for (; *text; text++)
/* Empty loop */ ;
}
if (text < key + png_ptr->current_text_size)
text++;
text_ptr = (png_textp)png_malloc(png_ptr,
(png_uint_32)png_sizeof(png_text));
text_ptr->compression = comp_flag + 2;
text_ptr->key = key;
text_ptr->lang = lang;
text_ptr->lang_key = lang_key;
text_ptr->text = text;
text_ptr->text_length = 0;
text_ptr->itxt_length = png_strlen(text);
ret = png_set_text_2(png_ptr, info_ptr, text_ptr, 1);
png_ptr->current_text = NULL;
png_free(png_ptr, text_ptr);
if (ret)
png_warning(png_ptr, "Insufficient memory to store iTXt chunk.");
}
}
#endif
/* This function is called when we haven't found a handler for this
* chunk. If there isn't a problem with the chunk itself (ie a bad chunk
* name or a critical chunk), the chunk is (currently) silently ignored.
*/
void /* PRIVATE */
png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32
length)
{
png_uint_32 skip = 0;
if (!(png_ptr->chunk_name[0] & 0x20))
{
#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
PNG_HANDLE_CHUNK_ALWAYS
#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
&& png_ptr->read_user_chunk_fn == NULL
#endif
)
#endif
png_chunk_error(png_ptr, "unknown critical chunk");
info_ptr = info_ptr; /* To quiet some compiler warnings */
}
#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
if (png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS)
{
#ifdef PNG_MAX_MALLOC_64K
if (length > (png_uint_32)65535L)
{
png_warning(png_ptr, "unknown chunk too large to fit in memory");
skip = length - (png_uint_32)65535L;
length = (png_uint_32)65535L;
}
#endif
png_memcpy((png_charp)png_ptr->unknown_chunk.name,
(png_charp)png_ptr->chunk_name,
png_sizeof(png_ptr->unknown_chunk.name));
png_ptr->unknown_chunk.name[png_sizeof(png_ptr->unknown_chunk.name) - 1]
= '\0';
png_ptr->unknown_chunk.size = (png_size_t)length;
if (length == 0)
png_ptr->unknown_chunk.data = NULL;
else
{
png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr,
(png_uint_32)length);
png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length);
}
#ifdef PNG_READ_USER_CHUNKS_SUPPORTED
if (png_ptr->read_user_chunk_fn != NULL)
{
/* Callback to user unknown chunk handler */
int ret;
ret = (*(png_ptr->read_user_chunk_fn))
(png_ptr, &png_ptr->unknown_chunk);
if (ret < 0)
png_chunk_error(png_ptr, "error in user chunk");
if (ret == 0)
{
if (!(png_ptr->chunk_name[0] & 0x20))
if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
PNG_HANDLE_CHUNK_ALWAYS)
png_chunk_error(png_ptr, "unknown critical chunk");
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;
}
else
#endif
skip=length;
png_push_crc_skip(png_ptr, skip);
}
void /* PRIVATE */
png_push_have_info(png_structp png_ptr, png_infop info_ptr)
{

View File

@@ -1,8 +1,8 @@
/* pngread.c - read a PNG file
*
* Last changed in libpng 1.2.44 [June 26, 2010]
* Copyright (c) 1998-2010 Glenn Randers-Pehrson
* Last changed in libpng 1.2.48 [March 2, 2012]
* Copyright (c) 1998-2012 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.)
*
@@ -19,7 +19,6 @@
#include "png.h"
#ifdef PNG_READ_SUPPORTED
/* Create a PNG structure for reading, and allocate any memory needed. */
png_structp PNGAPI
png_create_read_struct(png_const_charp user_png_ver, png_voidp error_ptr,
@@ -69,14 +68,8 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
#ifdef PNG_USER_LIMITS_SUPPORTED
png_ptr->user_width_max = PNG_USER_WIDTH_MAX;
png_ptr->user_height_max = PNG_USER_HEIGHT_MAX;
# ifdef PNG_USER_CHUNK_CACHE_MAX
/* Added at libpng-1.2.43 and 1.4.0 */
png_ptr->user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX;
# endif
# ifdef PNG_SET_USER_CHUNK_MALLOC_MAX
/* Added at libpng-1.2.43 and 1.4.1 */
png_ptr->user_chunk_malloc_max = PNG_USER_CHUNK_MALLOC_MAX;
# endif
#endif
#ifdef PNG_SETJMP_SUPPORTED
@@ -1307,12 +1300,6 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr,
png_free(png_ptr, png_ptr->save_buffer);
#endif
#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
#ifdef PNG_TEXT_SUPPORTED
png_free(png_ptr, png_ptr->current_text);
#endif /* PNG_TEXT_SUPPORTED */
#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
/* Save the important info out of the png_struct, in case it is
* being used again.
*/

View File

@@ -1,7 +1,7 @@
/* pngrutil.c - utilities to read a PNG file
*
* Last changed in libpng 1.2.47 [February 17, 2012]
* Last changed in libpng 1.2.48 [March 2, 2012]
* Copyright (c) 1998-2012 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.)
@@ -247,8 +247,8 @@ png_inflate(png_structp png_ptr, const png_byte *data, png_size_t size,
{
if (output != 0 && output_size > count)
{
int copy = output_size - count;
if (avail < copy) copy = avail;
png_size_t copy = output_size - count;
if ((png_size_t) avail < copy) copy = (png_size_t) avail;
png_memcpy(output + count, png_ptr->zbuf, copy);
}
count += avail;
@@ -341,14 +341,9 @@ png_decompress_chunk(png_structp png_ptr, int comp_type,
*/
if (prefix_size >= (~(png_size_t)0) - 1 ||
expanded_size >= (~(png_size_t)0) - 1 - prefix_size
#ifdef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
|| (png_ptr->user_chunk_malloc_max &&
(prefix_size + expanded_size >= png_ptr->user_chunk_malloc_max - 1))
#else
# ifdef PNG_USER_CHUNK_MALLOC_MAX
#ifdef PNG_USER_CHUNK_MALLOC_MAX
|| ((PNG_USER_CHUNK_MALLOC_MAX > 0) &&
prefix_size + expanded_size >= PNG_USER_CHUNK_MALLOC_MAX - 1)
# endif
#endif
)
png_warning(png_ptr, "Exceeded size limit while expanding chunk");
@@ -1535,15 +1530,16 @@ png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
return;
}
num = length / 2 ;
if (num != (unsigned int) png_ptr->num_palette || num >
(unsigned int) PNG_MAX_PALETTE_LENGTH)
if (length > 2*PNG_MAX_PALETTE_LENGTH ||
length != (unsigned int) (2*png_ptr->num_palette))
{
png_warning(png_ptr, "Incorrect hIST chunk length");
png_crc_finish(png_ptr, length);
return;
}
num = length / 2 ;
for (i = 0; i < num; i++)
{
png_byte buf[2];
@@ -1862,11 +1858,11 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
png_ptr->chunkdata = NULL;
return;
}
png_memcpy(swidth, ep, (png_size_t)png_strlen(ep));
png_memcpy(swidth, ep, (png_size_t)png_strlen(ep) + 1);
#endif
#endif
for (ep = png_ptr->chunkdata; *ep; ep++)
for (ep = png_ptr->chunkdata + 1; *ep; ep++)
/* Empty loop */ ;
ep++;
@@ -1906,7 +1902,7 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
#endif
return;
}
png_memcpy(sheight, ep, (png_size_t)png_strlen(ep));
png_memcpy(sheight, ep, (png_size_t)png_strlen(ep) + 1);
#endif
#endif

View File

@@ -1702,4 +1702,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_47rc01 your_png_h_is_not_version_1_2_47rc01;
typedef version_1_2_48rc02 your_png_h_is_not_version_1_2_48rc02;

View File

@@ -1 +1,12 @@
/* pnggvrd.c was removed from libpng-1.2.20. */
/* pngvcrd.c
*
* Last changed in libpng 1.2.48 [March 2, 2012]
* Copyright (c) 1998-2012 Glenn Randers-Pehrson
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
* and license in png.h
*
* This nearly empty file is for use by configure's compilation test. The
* remainder of the file was removed from libpng-1.2.20.
*/

View File

@@ -1,6 +1,6 @@
A set of project files is available for WinCE. Get
libpng-1.2.47rc01-project-wince.zip from a libpng distribution
libpng-1.2.48rc02-project-wince.zip from a libpng distribution
site such as http://libpng.sourceforge.net/index.html
Put the zip file in this directory (projects) and then run
"unzip -a libpng-1.2.47rc01-project-wince.zip"
"unzip -a libpng-1.2.48rc02-project-wince.zip"

View File

@@ -222,7 +222,7 @@
COPY_PHASE_STRIP = NO;
DYLIB_COMPATIBILITY_VERSION = 3;
DYLIB_CURRENT_VERSION = 3;
FRAMEWORK_VERSION = 1.2.47rc01;
FRAMEWORK_VERSION = 1.2.48rc02;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
INFOPLIST_FILE = Info.plist;
@@ -240,7 +240,7 @@
buildSettings = {
DYLIB_COMPATIBILITY_VERSION = 3;
DYLIB_CURRENT_VERSION = 3;
FRAMEWORK_VERSION = 1.2.47rc01;
FRAMEWORK_VERSION = 1.2.48rc02;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
INFOPLIST_FILE = Info.plist;

View File

@@ -1,8 +1,8 @@
Makefiles for libpng version 1.2.47rc01 - February 17, 2012
Makefiles for libpng version 1.2.48rc02 - March 2, 2012
makefile.linux => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.47rc01)
(gcc, creates libpng12.so.0.1.2.48rc02)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
ansi2knr (Requires ansi2knr.c from
@@ -20,7 +20,7 @@ Makefiles for libpng version 1.2.47rc01 - February 17, 2012
makefile.dec => DEC Alpha UNIX makefile
makefile.dj2 => DJGPP 2 makefile
makefile.elf => Linux/ELF makefile symbol versioning,
gcc, creates libpng12.so.0.1.2.47rc01)
gcc, creates libpng12.so.0.1.2.48rc02)
makefile.freebsd => FreeBSD makefile
makefile.gcc => Generic gcc makefile
makefile.gccmmx => Generic gcc makefile previously using MMX code
@@ -38,14 +38,14 @@ Makefiles for libpng version 1.2.47rc01 - February 17, 2012
makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def)
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
makefile.sggcc => Silicon Graphics (gcc,
creates libpng12.so.0.1.2.47rc01)
creates libpng12.so.0.1.2.48rc02)
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.solaris => Solaris 2.X makefile (gcc,
creates libpng12.so.0.1.2.47rc01)
creates libpng12.so.0.1.2.48rc02)
makefile.solaris-x86 => Solaris 2.X makefile (gcc, no MMX code,
creates libpng12.so.0.1.2.47rc01)
creates libpng12.so.0.1.2.48rc02)
makefile.so9 => Solaris 9 makefile (gcc,
creates libpng12.so.0.1.2.47rc01)
creates libpng12.so.0.1.2.48rc02)
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.sunos => Sun makefile
makefile.32sunu => Sun Ultra 32-bit makefile

View File

@@ -11,7 +11,7 @@
# Modeled after libxml-config.
version=1.2.47rc01
version=1.2.48rc02
prefix=""
libdir=""
libs=""

View File

@@ -5,6 +5,6 @@ includedir=@includedir@/libpng12
Name: libpng
Description: Loads and saves PNG files
Version: 1.2.47rc01
Version: 1.2.48rc02
Libs: -L${libdir} -lpng12
Cflags: -I${includedir}

View File

@@ -11,7 +11,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -11,7 +11,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -23,7 +23,7 @@ LN_SF = ln -f -s
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
prefix=/usr/local

View File

@@ -11,7 +11,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -23,7 +23,7 @@
VERMAJ = 1
VERMIN = 2
VERMIC = 47
VERMIC = 48
VER = $(VERMAJ).$(VERMIN).$(VERMIC)
NAME = libpng
PACKAGE = $(NAME)-$(VER)

View File

@@ -77,7 +77,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
LIBNAME = libpng12
PNGMAJ = 0
CYGDLL = 12
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=cygpng$(CYGDLL).dll

View File

@@ -22,7 +22,7 @@ ZLIBINC=../zlib
# Library name:
LIBNAME = libpng12
PNGMAJ = 12
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -8,7 +8,7 @@
# Library name:
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12

View File

@@ -16,7 +16,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -17,7 +17,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -21,7 +21,7 @@ ZLIBINC=/opt/zlib/include
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -11,7 +11,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -21,7 +21,7 @@ ZLIBINC=/opt/zlib/include
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -10,7 +10,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -81,7 +81,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
LIBNAME = libpng12
PNGMAJ = 0
MINGDLL = 12
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=libpng$(MINGDLL).dll

View File

@@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng12
LIB= png12
SHLIB_MAJOR= 0
SHLIB_MINOR= 1.2.47rc01
SHLIB_MINOR= 1.2.48rc02
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c

View File

@@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include
LIB= png
SHLIB_MAJOR= 3
SHLIB_MINOR= 1.2.47rc01
SHLIB_MINOR= 1.2.48rc02
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c

View File

@@ -10,7 +10,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib
MANDIR= ${PREFIX}/man/cat
SHLIB_MAJOR= 0
SHLIB_MINOR= 1.2.47rc01
SHLIB_MINOR= 1.2.48rc02
LIB= png
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \

View File

@@ -12,7 +12,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -9,7 +9,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -9,7 +9,7 @@
# Library name:
LIBNAME=libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -11,7 +11,7 @@
# Library name:
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12

View File

@@ -11,7 +11,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -11,7 +11,7 @@
# Library name:
LIBNAME = libpng12
PNGMAJ = 0
PNGMIN = 1.2.47rc01
PNGMIN = 1.2.48rc02
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:

View File

@@ -5,7 +5,7 @@
LIBRARY lpngce
EXPORTS
;Version 1.2.47rc01
;Version 1.2.48rc02
png_build_grayscale_palette @1
png_check_sig @2
png_chunk_error @3

View File

@@ -2,7 +2,7 @@
; PNG.LIB module definition file for OS/2
;----------------------------------------
; Version 1.2.47rc01
; Version 1.2.48rc02
LIBRARY PNG
DESCRIPTION "PNG image compression library for OS/2"

View File

@@ -5,7 +5,7 @@
LIBRARY
EXPORTS
;Version 1.2.47rc01
;Version 1.2.48rc02
png_build_grayscale_palette @1
png_check_sig @2
png_chunk_error @3