Imported from libpng-1.4.0beta37.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index 8311f5f..acf43b3 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
-Libpng 1.4.0beta36 - October 26, 2008
+Libpng 1.4.0beta37 - November 13, 2008
This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version.
@@ -9,27 +9,27 @@
Source files with LF line endings (for Unix/Linux) and with a
"configure" script
- 1.4.0beta36.tar.gz
- 1.4.0beta36.tar.bz2
+ 1.4.0beta37.tar.gz
+ 1.4.0beta37.tar.bz2
Source files with LF line endings (for Unix/Linux) without the
"configure" script
- 1.4.0beta36-no-config.tar.gz
- 1.4.0beta36-no-config.tar.bz2
+ 1.4.0beta37-no-config.tar.gz
+ 1.4.0beta37-no-config.tar.bz2
Source files with CRLF line endings (for Windows), without the
"configure" script
- lp140b36.zip
- lp140b36.tar.bz2
+ lp140b37.zip
+ lp140b37.tar.bz2
Other information:
- 1.4.0beta36-README.txt
- 1.4.0beta36-KNOWNBUGS.txt
- 1.4.0beta36-LICENSE.txt
- 1.4.0beta36-Y2K-compliance.txt
+ 1.4.0beta37-README.txt
+ 1.4.0beta37-KNOWNBUGS.txt
+ 1.4.0beta37-LICENSE.txt
+ 1.4.0beta37-Y2K-compliance.txt
Changes since the last public release (1.2.10):
@@ -332,9 +332,13 @@
Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8()
in example.c (debian bug report)
-version 1.4.0beta36 [October 26, 2008]
+version 1.4.0beta36 [October 25, 2008]
Sync with tEXt vulnerability fix in libpng-1.2.33rc02.
+version 1.4.0beta37 [November 13, 2008]
+ Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c,
+ and pngwrite.c
+
version 1.4.0betaN [future]
Build shared libraries with -lz and sometimes -lm.
diff --git a/CHANGES b/CHANGES
index 0ab49c0..f4e9a78 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2007,9 +2007,13 @@
Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8()
in example.c (debian bug report)
-version 1.4.0beta36 [October 26, 2008]
+version 1.4.0beta36 [October 25, 2008]
Sync with tEXt vulnerability fix in libpng-1.2.33rc02.
+version 1.4.0beta37 [November 13, 2008]
+ Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c,
+ and pngwrite.c
+
version 1.4.0betaN [future]
Build shared libraries with -lz and sometimes -lm.
diff --git a/INSTALL b/INSTALL
index bb0d877..12510f9 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
-Installing libpng version 1.4.0beta36 - October 26, 2008
+Installing libpng version 1.4.0beta37 - November 13, 2008
On Unix/Linux and similar systems, you can simply type
@@ -44,7 +44,7 @@
correspond to the version of zlib that's installed.
You can rename the directories that you downloaded (they
-might be called "libpng-1.4.0beta36" or "lpng109" and "zlib-1.2.1"
+might be called "libpng-1.4.0beta37" 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:
@@ -95,14 +95,14 @@
CMakeLists.txt => "cmake" script
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.elf => Linux/ELF makefile symbol versioning,
- gcc, creates libpng14.so.14.1.4.0beta36)
+ gcc, creates libpng14.so.14.1.4.0beta37)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng14.so.14.1.4.0beta36)
+ (gcc, creates libpng14.so.14.1.4.0beta37)
makefile.gcmmx => Linux/ELF makefile
- (gcc, creates libpng14.so.14.1.4.0beta36,
+ (gcc, creates libpng14.so.14.1.4.0beta37,
uses assembler code tuned for Intel MMX platform)
makefile.nommx => Linux/ELF makefile
- (gcc, creates libpng14.so.14.1.4.0beta36
+ (gcc, creates libpng14.so.14.1.4.0beta37
does not use Intel MMX assembler code)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
@@ -125,12 +125,12 @@
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc,
- creates libpng14.so.14.1.4.0beta36)
+ creates libpng14.so.14.1.4.0beta37)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc,
- creates libpng14.so.14.1.4.0beta36)
+ creates libpng14.so.14.1.4.0beta37)
makefile.so9 => Solaris 9 makefile (gcc,
- creates libpng14.so.14.1.4.0beta36)
+ creates libpng14.so.14.1.4.0beta37)
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/KNOWNBUG b/KNOWNBUG
index 96bf126..e5d6fc8 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
-Known bugs in libpng version 1.4.0beta36
+Known bugs in libpng version 1.4.0beta37
1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
reading interlaced PNG files, when assembler code is enabled but running
diff --git a/LICENSE b/LICENSE
index bf07248..ab91e53 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng versions 1.2.6, August 15, 2004, through 1.4.0beta36, October 26, 2008, are
+libpng versions 1.2.6, August 15, 2004, through 1.4.0beta37, November 13, 2008, are
Copyright (c) 2004, 2006-2007 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 @@
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-October 26, 2008
+November 13, 2008
diff --git a/Makefile.am b/Makefile.am
index f21b150..e3819a1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -42,10 +42,10 @@
# MAJOR UPGRADE: the version-number settings below must be changed.
libpng14_la_LDFLAGS = -no-undefined -export-dynamic \
- -version-number 0:@PNGLIB_RELEASE@:0
+ -version-number 14:@PNGLIB_RELEASE@:14
# -rpath is needed as automake doesn't know the directory
libpng_la_LDFLAGS = -rpath '$(libdir)' -no-undefined -export-dynamic \
- -version-number 14:@PNGLIB_RELEASE@:0
+ -version-number 14:@PNGLIB_RELEASE@:14
if HAVE_LD_VERSION_SCRIPT
# Versioned symbols and restricted exports
@@ -86,7 +86,7 @@
${srcdir}/contrib/pngsuite/* \
${srcdir}/contrib/visupng/* \
$(TESTS) \
- example.c libpng-1.4.0beta36.txt pngvcrd.c
+ example.c libpng-1.4.0beta37.txt pngvcrd.c
CLEANFILES= pngout.png libpng14.pc libpng14-config libpng.vers \
libpng.sym
@@ -122,7 +122,8 @@
install-data-hook:
cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h
cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/png.h png.h
- cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pngconf.h pngconf.h
+ cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pngconf.h \
+ pngconf.h
cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc
cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc
diff --git a/Makefile.in b/Makefile.in
index 887a5b1..aee9e3c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -301,10 +301,10 @@
# MAJOR UPGRADE: the version-number settings below must be changed.
libpng14_la_LDFLAGS = -no-undefined -export-dynamic -version-number \
- 0:@PNGLIB_RELEASE@:0 $(am__append_1) $(am__append_2)
+ 14:@PNGLIB_RELEASE@:14 $(am__append_1) $(am__append_2)
# -rpath is needed as automake doesn't know the directory
libpng_la_LDFLAGS = -rpath '$(libdir)' -no-undefined -export-dynamic \
- -version-number 14:@PNGLIB_RELEASE@:0
+ -version-number 14:@PNGLIB_RELEASE@:14
@HAVE_LD_VERSION_SCRIPT_FALSE@libpng14_la_DEPENDENCIES = libpng.sym
@HAVE_LD_VERSION_SCRIPT_TRUE@libpng14_la_DEPENDENCIES = libpng.vers
@@ -331,7 +331,7 @@
${srcdir}/contrib/pngsuite/* \
${srcdir}/contrib/visupng/* \
$(TESTS) \
- example.c libpng-1.4.0beta36.txt pngvcrd.c
+ example.c libpng-1.4.0beta37.txt pngvcrd.c
CLEANFILES = pngout.png libpng14.pc libpng14-config libpng.vers \
libpng.sym
diff --git a/README b/README
index 382895a..74ce3bf 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.4.0beta36 - October 26, 2008 (shared library 14.0)
+README for libpng version 1.4.0beta37 - November 13, 2008 (shared library 14.0)
See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng.
@@ -184,11 +184,11 @@
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 libpng14.so.14.1.4.0beta36)
+ gcc, creates libpng14.so.14.1.4.0beta37)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng14.so.14.1.4.0beta36)
+ (gcc, creates libpng14.so.14.1.4.0beta37)
makefile.gcmmx => Linux/ELF makefile
- (gcc, creates libpng14.so.14.1.4.0beta36,
+ (gcc, creates libpng14.so.14.1.4.0beta37,
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
@@ -210,12 +210,12 @@
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics
- (gcc, creates libpng14.so.14.1.4.0beta36)
+ (gcc, creates libpng14.so.14.1.4.0beta37)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
- (gcc, creates libpng14.so.14.1.4.0beta36)
+ (gcc, creates libpng14.so.14.1.4.0beta37)
makefile.so9 => Solaris 9 makefile
- (gcc, creates libpng14.so.14.1.4.0beta36)
+ (gcc, creates libpng14.so.14.1.4.0beta37)
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/configure b/configure
index ee23baa..acb151e 100755
--- a/configure
+++ b/configure
Binary files differ
diff --git a/configure.ac b/configure.ac
index 9ba020a..507543b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,12 +18,12 @@
dnl Version number stuff here:
-AC_INIT([libpng], [1.4.0beta36], [png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng], [1.4.0beta37], [png-mng-implement@lists.sourceforge.net])
AM_INIT_AUTOMAKE
dnl stop configure from automagically running automake
AM_MAINTAINER_MODE
-PNGLIB_VERSION=1.4.0beta36
+PNGLIB_VERSION=1.4.0beta37
PNGLIB_MAJOR=1
PNGLIB_MINOR=4
PNGLIB_RELEASE=0
diff --git a/example.c b/example.c
index e3675c0..ba1a0cb 100644
--- a/example.c
+++ b/example.c
@@ -2,7 +2,7 @@
#if 0 /* in case someone actually tries to compile this */
/* example.c - an example of using libpng
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* This file has been placed in the public domain by the authors.
* Maintained 1998-2008 Glenn Randers-Pehrson
* Maintained 1996, 1997 Andreas Dilger)
diff --git a/libpng-1.4.0beta36.txt b/libpng-1.4.0beta37.txt
similarity index 99%
rename from libpng-1.4.0beta36.txt
rename to libpng-1.4.0beta37.txt
index 6ef1880..114c733 100644
--- a/libpng-1.4.0beta36.txt
+++ b/libpng-1.4.0beta37.txt
@@ -1,6 +1,6 @@
libpng.txt - A description on how to use and modify libpng
- libpng version 1.4.0beta36 - October 26, 2008
+ libpng version 1.4.0beta37 - November 13, 2008
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2005 Glenn Randers-Pehrson
@@ -2816,13 +2816,13 @@
IX. Y2K Compliance in libpng
-October 26, 2008
+November 13, 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.4.0beta36 are Y2K compliant. It is my belief that earlier
+upward through 1.4.0beta37 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/libpng.3 b/libpng.3
index 0419bde..46e7300 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "October 26, 2008"
+.TH LIBPNG 3 "November 13, 2008"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta36
+libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta37
.SH SYNOPSIS
\fI\fB
@@ -809,7 +809,7 @@
.SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng
- libpng version 1.4.0beta36 - October 26, 2008
+ libpng version 1.4.0beta37 - November 13, 2008
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2005 Glenn Randers-Pehrson
@@ -3625,13 +3625,13 @@
.SH IX. Y2K Compliance in libpng
-October 26, 2008
+November 13, 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.4.0beta36 are Y2K compliant. It is my belief that earlier
+upward through 1.4.0beta37 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
@@ -3799,6 +3799,7 @@
1.4.0beta9-14 14 10400 14.so.0.0[.0]
1.2.13 13 10213 12.so.0.13[.0]
1.4.0beta15-36 14 10400 14.so.0.0[.0]
+ 1.4.0beta37 14 10400 14.so.14.0[.0]
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
@@ -3854,7 +3855,7 @@
Thanks to Frank J. T. Wojcik for helping with the documentation.
-Libpng version 1.4.0beta36 - October 26, 2008:
+Libpng version 1.4.0beta37 - November 13, 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).
@@ -3875,7 +3876,7 @@
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng versions 1.2.6, August 15, 2004, through 1.4.0beta36, October 26, 2008, are
+libpng versions 1.2.6, August 15, 2004, through 1.4.0beta37, November 13, 2008, are
Copyright (c) 2004,2006-2007 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
@@ -3974,7 +3975,7 @@
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-October 26, 2008
+November 13, 2008
.\" end of man page
diff --git a/libpngpf.3 b/libpngpf.3
index 41ad8cf..ea3d942 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "October 26, 2008"
+.TH LIBPNGPF 3 "November 13, 2008"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta36
+libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0beta37
(private functions)
.SH SYNOPSIS
\fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index af4ce78..de2d0b2 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "October 26, 2008"
+.TH PNG 5 "November 13, 2008"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION
diff --git a/png.c b/png.c
index 693b954..0a755ee 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions
*
- * Last changed in libpng 1.2.30 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -13,7 +13,7 @@
#include "pngpriv.h"
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_4_0beta36 Your_png_h_is_not_version_1_4_0beta36;
+typedef version_1_4_0beta37 Your_png_h_is_not_version_1_4_0beta37;
/* Version information for C files. This had better match the version
* string defined in png.h. */
@@ -641,13 +641,13 @@
#else
#ifdef __STDC__
return ((png_charp) PNG_STRING_NEWLINE \
- "libpng version x 1.4.0beta36 - October 26, 2008" PNG_STRING_NEWLINE \
+ "libpng version x 1.4.0beta37 - November 13, 2008" PNG_STRING_NEWLINE \
"Copyright (c) 1998-2008 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.4.0beta36 - October 26, 2008\
+ return ((png_charp) "libpng version 1.4.0beta37 - November 13, 2008\
Copyright (c) 1998-2008 Glenn Randers-Pehrson\
Copyright (c) 1996-1997 Andreas Dilger\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.");
@@ -744,4 +744,133 @@
return ((png_size_t)size);
}
#endif /* PNG_SIZE_T */
+
+/* Added at libpng version 1.4.0 (moved from pngset.c) */
+#if defined(PNG_cHRM_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+int /* private */
+png_check_cHRM(png_structp png_ptr,
+ double white_x, double white_y, double red_x, double red_y,
+ double green_x, double green_y, double blue_x, double blue_y)
+{
+ int ret = 1;
+
+ png_debug(1, "in png_check_cHRM function");
+ if (png_ptr == NULL)
+ ret = 0;
+ if (!(white_x || white_y || red_x || red_y || green_x || green_y ||
+ blue_x || blue_y))
+ {
+ png_warning(png_ptr,
+ "Ignoring attempt to set all-zero chromaticity values");
+ ret = 0;
+ }
+ if (white_x < 0.0 || white_y < 0.0 ||
+ red_x < 0.0 || red_y < 0.0 ||
+ green_x < 0.0 || green_y < 0.0 ||
+ blue_x < 0.0 || blue_y < 0.0)
+ {
+ png_warning(png_ptr,
+ "Ignoring attempt to set negative chromaticity value");
+ ret = 0;
+ }
+ if (white_x > 21474.83 || white_y > 21474.83 ||
+ red_x > 21474.83 || red_y > 21474.83 ||
+ green_x > 21474.83 || green_y > 21474.83 ||
+ blue_x > 21474.83 || blue_y > 21474.83)
+ {
+ png_warning(png_ptr,
+ "Ignoring attempt to set chromaticity value exceeding 21474.83");
+ ret = 0;
+ }
+ if (white_x > .8 || white_y > .8 || white_x + white_y > 1.0)
+ {
+ png_warning(png_ptr, "Invalid cHRM white point");
+ ret = 0;
+ }
+ if (red_x + red_y > 1.0)
+ {
+ png_warning(png_ptr, "Invalid cHRM red point");
+ ret = 0;
+ }
+ if (green_x + green_y > 1.0)
+ {
+ png_warning(png_ptr, "Invalid cHRM green point");
+ ret = 0;
+ }
+ if (blue_x + blue_y > 1.0)
+ {
+ png_warning(png_ptr, "Invalid cHRM blue point");
+ ret = 0;
+ }
+ return ret;
+}
+#endif /* PNG_FLOATING_POINT_SUPPORTED */
+
+#ifdef PNG_FIXED_POINT_SUPPORTED
+int /* private */
+png_check_cHRM_fixed(png_structp png_ptr,
+ png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x,
+ png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
+ png_fixed_point blue_x, png_fixed_point blue_y)
+{
+ int ret = 1;
+
+ png_debug(1, "in function png_check_cHRM_fixed");
+ if (png_ptr == NULL)
+ return 0;
+
+ if (!(white_x || white_y || red_x || red_y || green_x || green_y ||
+ blue_x || blue_y))
+ {
+ png_warning(png_ptr,
+ "Ignoring attempt to set all-zero chromaticity values");
+ ret = 0;
+ }
+ if (white_x < 0 || white_y < 0 ||
+ red_x < 0 || red_y < 0 ||
+ green_x < 0 || green_y < 0 ||
+ blue_x < 0 || blue_y < 0)
+ {
+ png_warning(png_ptr,
+ "Ignoring attempt to set negative chromaticity value");
+ ret = 0;
+ }
+ if (white_x > (png_fixed_point) PNG_UINT_31_MAX ||
+ white_y > (png_fixed_point) PNG_UINT_31_MAX ||
+ red_x > (png_fixed_point) PNG_UINT_31_MAX ||
+ red_y > (png_fixed_point) PNG_UINT_31_MAX ||
+ green_x > (png_fixed_point) PNG_UINT_31_MAX ||
+ green_y > (png_fixed_point) PNG_UINT_31_MAX ||
+ blue_x > (png_fixed_point) PNG_UINT_31_MAX ||
+ blue_y > (png_fixed_point) PNG_UINT_31_MAX )
+ {
+ png_warning(png_ptr,
+ "Ignoring attempt to set chromaticity value exceeding 21474.83");
+ ret = 0;
+ }
+ if (white_x > 80000L || white_y > 80000L || white_x + white_y > 100000L)
+ {
+ png_warning(png_ptr, "Invalid cHRM white point");
+ ret = 0;
+ }
+ if (red_x + red_y > 100000L)
+ {
+ png_warning(png_ptr, "Invalid cHRM red point");
+ ret = 0;
+ }
+ if (green_x + green_y > 100000L)
+ {
+ png_warning(png_ptr, "Invalid cHRM green point");
+ ret = 0;
+ }
+ if (blue_x + blue_y > 100000L)
+ {
+ png_warning(png_ptr, "Invalid cHRM blue point");
+ ret = 0;
+ }
+ return ret;
+}
+#endif /* PNG_FIXED_POINT_SUPPORTED */
+#endif /* PNG_cHRM_SUPPORTED */
#endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
diff --git a/png.h b/png.h
index 2abb7ba..9478ae5 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.4.0beta36 - October 26, 2008
+ * libpng version 1.4.0beta37 - November 13, 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.)
@@ -9,7 +9,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.4.0beta36 - October 26, 2008: Glenn
+ * libpng versions 0.97, January 1998, through 1.4.0beta37 - November 13, 2008: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -127,6 +127,7 @@
* 1.4.0beta9-14 14 10400 14.so.0.0[.0]
* 1.2.13 13 10213 12.so.0.10[.0]
* 1.4.0beta15-36 14 10400 14.so.0.0[.0]
+ * 1.4.0beta37 14 10400 14.so.14.0[.0]
*
* Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be
@@ -156,7 +157,7 @@
* If you modify libpng you may insert additional notices immediately following
* this sentence.
*
- * libpng versions 1.2.6, August 15, 2004, through 1.4.0beta36, October 26, 2008, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.4.0beta37, November 13, 2008, are
* Copyright (c) 2004, 2006-2007 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:
@@ -274,7 +275,7 @@
* an official declaration.
*
* This is your unofficial assurance that libpng from version 0.71 and
- * upward through 1.4.0beta36 are Y2K compliant. It is my belief that earlier
+ * upward through 1.4.0beta37 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
@@ -330,9 +331,9 @@
*/
/* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.4.0beta36"
+#define PNG_LIBPNG_VER_STRING "1.4.0beta37"
#define PNG_HEADER_VERSION_STRING \
- " libpng version 1.4.0beta36 - October 26, 2008\n"
+ " libpng version 1.4.0beta37 - November 13, 2008\n"
#define PNG_LIBPNG_VER_SONUM 14
#define PNG_LIBPNG_VER_DLLNUM 14
@@ -344,7 +345,7 @@
/* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
-#define PNG_LIBPNG_VER_BUILD 36
+#define PNG_LIBPNG_VER_BUILD 37
/* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1
@@ -1352,7 +1353,7 @@
/* 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_4_0beta36;
+typedef png_structp version_1_4_0beta37;
typedef png_struct FAR * FAR * png_structpp;
diff --git a/pngconf.h b/pngconf.h
index 18ccdb9..787e445 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
- * libpng version 1.4.0beta36 - October 26, 2008
+ * libpng version 1.4.0beta37 - November 13, 2008
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngerror.c b/pngerror.c
index a9f2896..5d96245 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
/* pngerror.c - stub functions for i/o and memory allocation
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngget.c b/pngget.c
index 92b6ab1..5c8e645 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
/* pngget.c - retrieval of values from info struct
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngmem.c b/pngmem.c
index 7c8bb98..65c657c 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
/* pngmem.c - stub functions for memory allocation
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpread.c b/pngpread.c
index 12fe86b..9accebb 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
/* pngpread.c - read a png file in push mode
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngpriv.h b/pngpriv.h
index 7ee0483..0629b14 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -1,7 +1,7 @@
/* pngpriv.h - private declarations for use inside libpng
*
- * libpng version 1.4.0beta36 - October 26, 2008
+ * libpng version 1.4.0beta37 - November 13, 2008
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -848,10 +848,26 @@
#endif
#if defined(PNG_MMX_CODE_SUPPORTED)
-/* png.c */ /* PRIVATE */
+/* PRIVATE */
PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr));
#endif
+/* Added at libpng version 1.4.0 */
+#if defined(PNG_cHRM_SUPPORTED)
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXTERN int png_check_cHRM PNGARG((png_structp png_ptr,
+ double white_x, double white_y, double red_x,
+ double red_y, double green_x, double green_y, double blue_x, double blue_y));
+#endif
+#ifdef PNG_FIXED_POINT_SUPPORTED
+PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
+ png_fixed_point int_white_x, png_fixed_point int_white_y,
+ png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
+ int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
+ png_fixed_point int_blue_y));
+#endif
+#endif
+
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
#ifdef PNG_READ_SUPPORTED
diff --git a/pngread.c b/pngread.c
index 0f7f835..f7f03f3 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
/* pngread.c - read a PNG file
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrio.c b/pngrio.c
index 54766a6..6cad616 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
/* pngrio.c - functions for data input
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 36ab1da..13c636f 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
/* pngrtran.c - transforms the data in a row for PNG readers
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index 5987709..9f938a0 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
/* pngrutil.c - utilities to read a PNG file
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -796,42 +796,21 @@
uint_x = png_get_uint_32(buf);
uint_y = png_get_uint_32(buf + 4);
- if (uint_x > 80000L || uint_y > 80000L ||
- uint_x + uint_y > 100000L)
- {
- png_warning(png_ptr, "Invalid cHRM white point");
- return;
- }
int_x_white = (png_fixed_point)uint_x;
int_y_white = (png_fixed_point)uint_y;
uint_x = png_get_uint_32(buf + 8);
uint_y = png_get_uint_32(buf + 12);
- if (uint_x + uint_y > 100000L)
- {
- png_warning(png_ptr, "Invalid cHRM red point");
- return;
- }
int_x_red = (png_fixed_point)uint_x;
int_y_red = (png_fixed_point)uint_y;
uint_x = png_get_uint_32(buf + 16);
uint_y = png_get_uint_32(buf + 20);
- if (uint_x + uint_y > 100000L)
- {
- png_warning(png_ptr, "Invalid cHRM green point");
- return;
- }
int_x_green = (png_fixed_point)uint_x;
int_y_green = (png_fixed_point)uint_y;
uint_x = png_get_uint_32(buf + 24);
uint_y = png_get_uint_32(buf + 28);
- if (uint_x + uint_y > 100000L)
- {
- png_warning(png_ptr, "Invalid cHRM blue point");
- return;
- }
int_x_blue = (png_fixed_point)uint_x;
int_y_blue = (png_fixed_point)uint_y;
diff --git a/pngset.c b/pngset.c
index 1dc624d..2e059d1 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
/* pngset.c - storage of image information into info struct
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -40,31 +40,6 @@
png_debug1(1, "in %s storage function", "cHRM");
if (png_ptr == NULL || info_ptr == NULL)
return;
- if (!(white_x || white_y || red_x || red_y || green_x || green_y ||
- blue_x || blue_y))
- {
- png_warning(png_ptr,
- "Ignoring attempt to set all-zero chromaticity values");
- return;
- }
- if (white_x < 0.0 || white_y < 0.0 ||
- red_x < 0.0 || red_y < 0.0 ||
- green_x < 0.0 || green_y < 0.0 ||
- blue_x < 0.0 || blue_y < 0.0)
- {
- png_warning(png_ptr,
- "Ignoring attempt to set negative chromaticity value");
- return;
- }
- if (white_x > 21474.83 || white_y > 21474.83 ||
- red_x > 21474.83 || red_y > 21474.83 ||
- green_x > 21474.83 || green_y > 21474.83 ||
- blue_x > 21474.83 || blue_y > 21474.83)
- {
- png_warning(png_ptr,
- "Ignoring attempt to set chromaticity value exceeding 21474.83");
- return;
- }
info_ptr->x_white = (float)white_x;
info_ptr->y_white = (float)white_y;
@@ -86,7 +61,8 @@
#endif
info_ptr->valid |= PNG_INFO_cHRM;
}
-#endif
+#endif /* PNG_FLOATING_POINT_SUPPORTED */
+
#ifdef PNG_FIXED_POINT_SUPPORTED
void PNGAPI
png_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
@@ -94,61 +70,36 @@
png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
png_fixed_point blue_x, png_fixed_point blue_y)
{
- png_debug1(1, "in %s storage function", "cHRM");
+ png_debug1(1, "in %s storage function", "cHRM_fixed");
if (png_ptr == NULL || info_ptr == NULL)
return;
- if (!(white_x || white_y || red_x || red_y || green_x || green_y ||
- blue_x || blue_y))
+ if (png_check_cHRM_fixed(png_ptr,
+ white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y))
{
- png_warning(png_ptr,
- "Ignoring attempt to set all-zero chromaticity values");
- return;
- }
- if (white_x < 0 || white_y < 0 ||
- red_x < 0 || red_y < 0 ||
- green_x < 0 || green_y < 0 ||
- blue_x < 0 || blue_y < 0)
- {
- png_warning(png_ptr,
- "Ignoring attempt to set negative chromaticity value");
- return;
- }
- if (white_x > (png_fixed_point) PNG_UINT_31_MAX ||
- white_y > (png_fixed_point) PNG_UINT_31_MAX ||
- red_x > (png_fixed_point) PNG_UINT_31_MAX ||
- red_y > (png_fixed_point) PNG_UINT_31_MAX ||
- green_x > (png_fixed_point) PNG_UINT_31_MAX ||
- green_y > (png_fixed_point) PNG_UINT_31_MAX ||
- blue_x > (png_fixed_point) PNG_UINT_31_MAX ||
- blue_y > (png_fixed_point) PNG_UINT_31_MAX )
- {
- png_warning(png_ptr,
- "Ignoring attempt to set chromaticity value exceeding 21474.83");
- return;
- }
- info_ptr->int_x_white = white_x;
- info_ptr->int_y_white = white_y;
- info_ptr->int_x_red = red_x;
- info_ptr->int_y_red = red_y;
- info_ptr->int_x_green = green_x;
- info_ptr->int_y_green = green_y;
- info_ptr->int_x_blue = blue_x;
- info_ptr->int_y_blue = blue_y;
+ info_ptr->int_x_white = white_x;
+ info_ptr->int_y_white = white_y;
+ info_ptr->int_x_red = red_x;
+ info_ptr->int_y_red = red_y;
+ info_ptr->int_x_green = green_x;
+ info_ptr->int_y_green = green_y;
+ info_ptr->int_x_blue = blue_x;
+ info_ptr->int_y_blue = blue_y;
#ifdef PNG_FLOATING_POINT_SUPPORTED
- info_ptr->x_white = (float)(white_x/100000.);
- info_ptr->y_white = (float)(white_y/100000.);
- info_ptr->x_red = (float)( red_x/100000.);
- info_ptr->y_red = (float)( red_y/100000.);
- info_ptr->x_green = (float)(green_x/100000.);
- info_ptr->y_green = (float)(green_y/100000.);
- info_ptr->x_blue = (float)( blue_x/100000.);
- info_ptr->y_blue = (float)( blue_y/100000.);
+ info_ptr->x_white = (float)(white_x/100000.);
+ info_ptr->y_white = (float)(white_y/100000.);
+ info_ptr->x_red = (float)( red_x/100000.);
+ info_ptr->y_red = (float)( red_y/100000.);
+ info_ptr->x_green = (float)(green_x/100000.);
+ info_ptr->y_green = (float)(green_y/100000.);
+ info_ptr->x_blue = (float)( blue_x/100000.);
+ info_ptr->y_blue = (float)( blue_y/100000.);
#endif
- info_ptr->valid |= PNG_INFO_cHRM;
+ info_ptr->valid |= PNG_INFO_cHRM;
+ }
}
-#endif
-#endif
+#endif /* PNG_FIXED_POINT_SUPPORTED */
+#endif /* PNG_cHRM_SUPPORTED */
#if defined(PNG_gAMA_SUPPORTED)
#ifdef PNG_FLOATING_POINT_SUPPORTED
@@ -657,9 +608,12 @@
int_blue_x = 15000L;
int_blue_y = 6000L;
- png_set_cHRM_fixed(png_ptr, info_ptr,
- int_white_x, int_white_y, int_red_x, int_red_y, int_green_x, int_green_y,
- int_blue_x, int_blue_y);
+ if (png_check_cHRM_fixed(png_ptr,
+ int_white_x, int_white_y, int_red_x, int_red_y, int_green_x,
+ int_green_y, int_blue_x, int_blue_y))
+ png_set_cHRM_fixed(png_ptr, info_ptr,
+ int_white_x, int_white_y, int_red_x, int_red_y, int_green_x,
+ int_green_y, int_blue_x, int_blue_y);
#endif
#ifdef PNG_FLOATING_POINT_SUPPORTED
white_x = (float).3127;
@@ -671,8 +625,10 @@
blue_x = (float).15;
blue_y = (float).06;
- png_set_cHRM(png_ptr, info_ptr,
- white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y);
+ if (png_check_cHRM(png_ptr,
+ white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y))
+ png_set_cHRM(png_ptr, info_ptr,
+ white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y);
#endif
#endif
}
diff --git a/pngtest.c b/pngtest.c
index dfe512a..a3cc51e 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
/* pngtest.c - a simple test program to test libpng
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1613,4 +1613,4 @@
}
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_4_0beta36 your_png_h_is_not_version_1_4_0beta36;
+typedef version_1_4_0beta37 your_png_h_is_not_version_1_4_0beta37;
diff --git a/pngtrans.c b/pngtrans.c
index 134665b..1b2fc40 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,7 +1,7 @@
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwio.c b/pngwio.c
index 5f993f7..53fba93 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
/* pngwio.c - functions for data output
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwrite.c b/pngwrite.c
index 4e342c8..30503e4 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
/* pngwrite.c - general routines to write a PNG file
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwtran.c b/pngwtran.c
index 4361cde..5ecbd5d 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
/* pngwtran.c - transforms the data in a row for PNG writers
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index 0377c72..9394306 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
/* pngwutil.c - utilities to write a PNG file
*
- * Last changed in libpng 1.4.0 [October 26, 2008]
+ * Last changed in libpng 1.4.0 [November 13, 2008]
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -999,51 +999,31 @@
png_debug(1, "in png_write_cHRM");
/* each value is saved in 1/100,000ths */
- if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 ||
- white_x + white_y > 1.0)
+ if (png_check_cHRM(png_ptr, white_x, white_y, red_x, red_y,
+ green_x, green_y, blue_x, blue_y))
{
- png_warning(png_ptr, "Invalid cHRM white point specified");
-#if !defined(PNG_NO_CONSOLE_IO)
- fprintf(stderr, "white_x=%f, white_y=%f\n", white_x, white_y);
-#endif
- return;
- }
itemp = (png_uint_32)(white_x * 100000.0 + 0.5);
png_save_uint_32(buf, itemp);
itemp = (png_uint_32)(white_y * 100000.0 + 0.5);
png_save_uint_32(buf + 4, itemp);
- if (red_x < 0 || red_y < 0 || red_x + red_y > 1.0)
- {
- png_warning(png_ptr, "Invalid cHRM red point specified");
- return;
- }
itemp = (png_uint_32)(red_x * 100000.0 + 0.5);
png_save_uint_32(buf + 8, itemp);
itemp = (png_uint_32)(red_y * 100000.0 + 0.5);
png_save_uint_32(buf + 12, itemp);
- if (green_x < 0 || green_y < 0 || green_x + green_y > 1.0)
- {
- png_warning(png_ptr, "Invalid cHRM green point specified");
- return;
- }
itemp = (png_uint_32)(green_x * 100000.0 + 0.5);
png_save_uint_32(buf + 16, itemp);
itemp = (png_uint_32)(green_y * 100000.0 + 0.5);
png_save_uint_32(buf + 20, itemp);
- if (blue_x < 0 || blue_y < 0 || blue_x + blue_y > 1.0)
- {
- png_warning(png_ptr, "Invalid cHRM blue point specified");
- return;
- }
itemp = (png_uint_32)(blue_x * 100000.0 + 0.5);
png_save_uint_32(buf + 24, itemp);
itemp = (png_uint_32)(blue_y * 100000.0 + 0.5);
png_save_uint_32(buf + 28, itemp);
png_write_chunk(png_ptr, (png_bytep)png_cHRM, buf, (png_size_t)32);
+ }
}
#endif
#ifdef PNG_FIXED_POINT_SUPPORTED
@@ -1060,43 +1040,23 @@
png_debug(1, "in png_write_cHRM");
/* each value is saved in 1/100,000ths */
- if (white_x > 80000L || white_y > 80000L || white_x + white_y > 100000L)
+ if (png_check_cHRM_fixed(png_ptr, white_x, white_y, red_x, red_y,
+ green_x, green_y, blue_x, blue_y))
{
- png_warning(png_ptr, "Invalid fixed cHRM white point specified");
-#if !defined(PNG_NO_CONSOLE_IO)
- fprintf(stderr, "white_x=%ld, white_y=%ld\n", (unsigned long)white_x,
- (unsigned long)white_y);
-#endif
- return;
- }
png_save_uint_32(buf, (png_uint_32)white_x);
png_save_uint_32(buf + 4, (png_uint_32)white_y);
- if (red_x + red_y > 100000L)
- {
- png_warning(png_ptr, "Invalid cHRM fixed red point specified");
- return;
- }
png_save_uint_32(buf + 8, (png_uint_32)red_x);
png_save_uint_32(buf + 12, (png_uint_32)red_y);
- if (green_x + green_y > 100000L)
- {
- png_warning(png_ptr, "Invalid fixed cHRM green point specified");
- return;
- }
png_save_uint_32(buf + 16, (png_uint_32)green_x);
png_save_uint_32(buf + 20, (png_uint_32)green_y);
- if (blue_x + blue_y > 100000L)
- {
- png_warning(png_ptr, "Invalid fixed cHRM blue point specified");
- return;
- }
png_save_uint_32(buf + 24, (png_uint_32)blue_x);
png_save_uint_32(buf + 28, (png_uint_32)blue_y);
png_write_chunk(png_ptr, (png_bytep)png_cHRM, buf, (png_size_t)32);
+ }
}
#endif
#endif
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index 99a5b97..0d8ae14 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -178,7 +178,7 @@
# SET UP LINKS
set_target_properties(${PNG_LIB_NAME} PROPERTIES
-# VERSION 0.${PNGLIB_RELEASE}.1.4.0beta36
+# VERSION 0.${PNGLIB_RELEASE}.1.4.0beta37
VERSION 0.${PNGLIB_RELEASE}.0
SOVERSION 0
CLEAN_DIRECT_OUTPUT 1)
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index b9e36e5..49b0b20 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -8,7 +8,7 @@
# Modeled after libxml-config.
-version=1.4.0beta36
+version=1.4.0beta37
prefix=""
libdir=""
libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index 61a564a..878b89c 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -5,6 +5,6 @@
Name: libpng
Description: Loads and saves PNG files
-Version: 1.4.0beta36
+Version: 1.4.0beta37
Libs: -L${libdir} -lpng14
Cflags: -I${includedir}
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index 2eae94c..4f1174d 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -8,7 +8,7 @@
# Library name:
LIBNAME=libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index fe14607..656a820 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -8,7 +8,7 @@
# Library name:
LIBNAME=libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index 3678311..9a69202 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -20,7 +20,7 @@
LIBNAME=libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 51c39cc..521cde6 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -8,7 +8,7 @@
# Library name:
LIBNAME=libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index e310c0a..a06b373 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -65,7 +65,7 @@
LIBNAME = libpng14
PNGMAJ = 14
CYGDLL = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=cygpng$(CYGDLL).dll
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index e481ea7..ba9573b 100644
--- a/scripts/makefile.darwin
+++ b/scripts/makefile.darwin
@@ -19,7 +19,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 12
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index c6928f5..5fcd27f 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -5,7 +5,7 @@
# Library name:
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng14
diff --git a/scripts/makefile.elf b/scripts/makefile.elf
index 3bd2a34..d28a39e 100644
--- a/scripts/makefile.elf
+++ b/scripts/makefile.elf
@@ -12,13 +12,12 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
LIBSO=$(LIBNAME).so
LIBSOMAJ=$(LIBNAME).so.$(PNGMAJ)
-LIBSOVER=$(LIBNAME).so.$(PNGVER)
OLDSO=libpng.so
# Utilities:
@@ -129,13 +128,10 @@
$(LIBSO): $(LIBSOMAJ)
$(LN_SF) $(LIBSOMAJ) $(LIBSO)
-$(LIBSOMAJ): $(LIBSOVER)
- $(LN_SF) $(LIBSOVER) $(LIBSOMAJ)
-
-$(LIBSOVER): $(OBJSDLL) libpng.syms
+$(LIBSOMAJ): $(OBJSDLL) libpng.syms
$(CC) -shared -Wl,-soname,$(LIBSOMAJ) \
-Wl,-version-script,libpng.syms \
- -o $(LIBSOVER) \
+ -o $(LIBSOMAJ) \
$(OBJSDLL)
pngtest: pngtest.o $(LIBSO)
@@ -171,15 +167,12 @@
-@$(RM_F) $(DL)/libpng.a
(cd $(DL); $(LN_SF) $(LIBNAME).a libpng.a)
-install-shared: install-headers $(LIBSOVER) libpng.pc
+install-shared: install-headers libpng.pc
-@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi
- -@$(RM_F) $(DL)/$(LIBSOVER)* $(DL)/$(LIBSO)
+ -@$(RM_F) $(DL)/$(LIBSO)
-@$(RM_F) $(DL)/$(LIBSOMAJ)
-@$(RM_F) $(DL)/$(OLDSO)
- cp $(LIBSOVER) $(DL)
- chmod 755 $(DL)/$(LIBSOVER)
(cd $(DL); \
- $(LN_SF) $(LIBSOVER) $(LIBSOMAJ); \
$(LN_SF) $(LIBSOMAJ) $(LIBSO); \
$(LN_SF) $(OLDSO) $(LIBSO))
-@if [ ! -d $(DL)/pkgconfig ]; then $(MKDIR_P) $(DL)/pkgconfig; fi
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index a279d5e..8e6389e 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -16,7 +16,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64
index a479f55..d022629 100644
--- a/scripts/makefile.hp64
+++ b/scripts/makefile.hp64
@@ -18,7 +18,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index f7e5dd6..2cadc1f 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -8,7 +8,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index bfadddd..4487d70 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -18,7 +18,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 3a182a9..b565534 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -6,7 +6,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.mingw b/scripts/makefile.mingw
index fbe60a3..c34db0e 100644
--- a/scripts/makefile.mingw
+++ b/scripts/makefile.mingw
@@ -81,7 +81,7 @@
LIBNAME = libpng14
PNGMAJ = 14
MINGDLL = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=libpng$(MINGDLL).dll
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index 37e81f3..8e3eba8 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -14,7 +14,7 @@
LIB= png14
SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.4.0beta36
+SHLIB_MINOR= 1.4.0beta37
SRCS= pnggccrd.c 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
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index f0521b2..5af2b48 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -13,7 +13,7 @@
LIB= png
SHLIB_MAJOR= 3
-SHLIB_MINOR= 1.4.0beta36
+SHLIB_MINOR= 1.4.0beta37
SRCS= pnggccrd.c 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
diff --git a/scripts/makefile.nommx b/scripts/makefile.nommx
index becbc73..edd5fcc 100644
--- a/scripts/makefile.nommx
+++ b/scripts/makefile.nommx
@@ -16,7 +16,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd
index 4978917..e39d4b0 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -8,7 +8,7 @@
MANDIR= ${PREFIX}/man/cat
SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.4.0beta36
+SHLIB_MINOR= 1.4.0beta37
LIB= png
SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index 5e1a04d..5540853 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -9,7 +9,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index a98edf9..d638c70 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -6,7 +6,7 @@
# Library name:
LIBNAME=libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index aeffcbe..4a3f4ad 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -6,7 +6,7 @@
# Library name:
LIBNAME=libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index 28356be..6867ab5 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -8,7 +8,7 @@
# Library name:
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng14
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index da3742b..3b965c2 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -8,7 +8,7 @@
# Library name:
LIBNAME = libpng14
PNGMAJ = 14
-PNGMIN = 1.4.0beta36
+PNGMIN = 1.4.0beta37
PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names:
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 7873a9c..b78202a 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
; PNG.LIB module definition file for OS/2
;----------------------------------------
-; Version 1.4.0beta36
+; Version 1.4.0beta37
LIBRARY PNG
DESCRIPTION "PNG image compression library for OS/2"
@@ -219,14 +219,19 @@
png_save_int_32
png_get_uint_31
png_set_expand_gray_1_2_4_to_8
+
; Added at version 1.4.0
+ png_write_sig
+; png_benign_error
+; png_benign_chunk_error
+; png_set_benign_error
png_get_io_chunk_name
png_get_io_state
png_set_premultiply_alpha
-
-; Added at version 1.4.0
png_get_chunk_cache_max
png_set_chunk_cache_max
+ png_check_cHRM
+ png_check_cHRM_fixed
; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
png_libpng_ver
diff --git a/scripts/pngwin.def b/scripts/pngwin.def
index e223ea5..143509d 100644
--- a/scripts/pngwin.def
+++ b/scripts/pngwin.def
@@ -5,7 +5,7 @@
LIBRARY
EXPORTS
-;Version 1.4.0beta36
+;Version 1.4.0beta37
png_build_grayscale_palette
png_chunk_error
png_chunk_warning
@@ -228,3 +228,5 @@
png_set_premultiply_alpha
png_get_chunk_cache_max
png_set_chunk_cache_max
+ png_check_cHRM
+ png_check_cHRM_fixed