diff options
62 files changed, 336 insertions, 285 deletions
@@ -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 @@ Files available for download: 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 @@ version 1.4.0beta35 [October 6, 2008] 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. @@ -2007,9 +2007,13 @@ version 1.4.0beta35 [October 6, 2008] 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. @@ -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 @@ 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.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 @@ include 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 @@ include 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 @@ -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 @@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.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 @@ certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net -October 26, 2008 +November 13, 2008 diff --git a/Makefile.am b/Makefile.am index f21b1509d..e3819a102 100644 --- a/Makefile.am +++ b/Makefile.am @@ -42,10 +42,10 @@ libpng14_la_CPPFLAGS = @LIBPNG_DEFINES@ # 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 @@ EXTRA_DIST= \ ${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 @@ test: check 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 887a5b173..aee9e3c82 100644 --- a/Makefile.in +++ b/Makefile.in @@ -301,10 +301,10 @@ libpng14_la_CPPFLAGS = @LIBPNG_DEFINES@ # 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 @@ EXTRA_DIST = \ ${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 @@ -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 @@ Files in this distribution: descrip.mms => VMS makefile for MMS or MMK makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.elf => Linux/ELF makefile symbol versioning, - gcc, creates 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 @@ Files in this distribution: 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 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for libpng 1.4.0beta36. +# Generated by GNU Autoconf 2.62 for libpng 1.4.0beta37. # # Report bugs to <png-mng-implement@lists.sourceforge.net>. # @@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='libpng' PACKAGE_TARNAME='libpng' -PACKAGE_VERSION='1.4.0beta36' -PACKAGE_STRING='libpng 1.4.0beta36' +PACKAGE_VERSION='1.4.0beta37' +PACKAGE_STRING='libpng 1.4.0beta37' PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net' ac_unique_file="pngget.c" @@ -1484,7 +1484,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.4.0beta36 to adapt to many kinds of systems. +\`configure' configures libpng 1.4.0beta37 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1554,7 +1554,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libpng 1.4.0beta36:";; + short | recursive ) echo "Configuration of libpng 1.4.0beta37:";; esac cat <<\_ACEOF @@ -1661,7 +1661,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libpng configure 1.4.0beta36 +libpng configure 1.4.0beta37 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1675,7 +1675,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.4.0beta36, which was +It was created by libpng $as_me 1.4.0beta37, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@ -2389,7 +2389,7 @@ fi # Define the identity of the package. PACKAGE='libpng' - VERSION='1.4.0beta36' + VERSION='1.4.0beta37' cat >>confdefs.h <<_ACEOF @@ -2558,7 +2558,7 @@ fi -PNGLIB_VERSION=1.4.0beta36 +PNGLIB_VERSION=1.4.0beta37 PNGLIB_MAJOR=1 PNGLIB_MINOR=4 PNGLIB_RELEASE=0 @@ -13125,7 +13125,7 @@ exec 6>&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.4.0beta36, which was +This file was extended by libpng $as_me 1.4.0beta37, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13178,7 +13178,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -libpng config.status 1.4.0beta36 +libpng config.status 1.4.0beta37 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index 9ba020a99..507543bb4 100644 --- a/configure.ac +++ b/configure.ac @@ -18,12 +18,12 @@ AC_PREREQ(2.59) 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 @@ -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 index 6ef1880d6..114c73309 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 @@ application: 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 @@ -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 @@ 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.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 @@ application: .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 @@ the first widely used release: 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 @@ possible without all of you. 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 @@ included in the libpng distribution, the latter shall prevail.) If you modify libpng you may insert additional notices immediately following this sentence. -libpng versions 1.2.6, August 15, 2004, through 1.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 @@ certification mark of the Open Source Initiative. 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 41ad8cfd2..ea3d942f4 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 @@ -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 @@ -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 @@ png_get_copyright(png_structp png_ptr) #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 @@ png_convert_size(size_t size) 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) */ @@ -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 @@ 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_4_0beta36; +typedef png_structp version_1_4_0beta37; typedef png_struct FAR * FAR * png_structpp; @@ -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 a9f289608..5d962453b 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) @@ -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) @@ -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 12fe86b84..9accebbd2 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) @@ -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 @@ PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info, #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 @@ -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) @@ -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 36ab1da2c..13c636f42 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 59877093a..9f938a033 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 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 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; @@ -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_set_cHRM(png_structp png_ptr, png_infop info_ptr, 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 @@ png_set_cHRM(png_structp png_ptr, png_infop info_ptr, #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_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr, 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 @@ png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, 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 @@ png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, 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 } @@ -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 @@ main(int argc, char *argv[]) } /* 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 134665bc7..1b2fc401f 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) @@ -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 4e342c851..30503e4ce 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 4361cde3b..5ecbd5d6e 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 0377c72d2..93943060c 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_write_cHRM(png_structp png_ptr, double white_x, double white_y, 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_write_cHRM_fixed(png_structp png_ptr, png_fixed_point white_x, 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 99a5b972b..0d8ae1499 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -178,7 +178,7 @@ configure_file(${PNG_SOURCE_DIR}/scripts/libpng-config.in # 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 b9e36e53a..49b0b205e 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 61a564abd..878b89ce6 100644 --- a/scripts/libpng.pc.in +++ b/scripts/libpng.pc.in @@ -5,6 +5,6 @@ includedir=@includedir@/libpng14 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 2eae94c9f..4f1174df6 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 fe1460792..656a82045 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 367831170..9a692024e 100644 --- a/scripts/makefile.aix +++ b/scripts/makefile.aix @@ -20,7 +20,7 @@ LN_SF = ln -f -s 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 51c39cc49..521cde694 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 e310c0a43..a06b3738a 100644 --- a/scripts/makefile.cygwin +++ b/scripts/makefile.cygwin @@ -65,7 +65,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \ 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 e481ea71c..ba9573bc2 100644 --- a/scripts/makefile.darwin +++ b/scripts/makefile.darwin @@ -19,7 +19,7 @@ ZLIBINC=../zlib # 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 c6928f5d7..5fcd27fbf 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 3bd2a3470..d28a39e3a 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 @@ libpng-config: $(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 @@ install-static: install-headers libpng.a -@$(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 a279d5e93..8e6389ec0 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 a479f5523..d0226290d 100644 --- a/scripts/makefile.hp64 +++ b/scripts/makefile.hp64 @@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include # 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 f7e5dd6d8..2cadc1f64 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 bfaddddc4..4487d7045 100644 --- a/scripts/makefile.hpux +++ b/scripts/makefile.hpux @@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include # 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 3a182a938..b565534ee 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 fbe60a38f..c34db0e0d 100644 --- a/scripts/makefile.mingw +++ b/scripts/makefile.mingw @@ -81,7 +81,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \ 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 37e81f3b1..8e3eba82e 100644 --- a/scripts/makefile.ne12bsd +++ b/scripts/makefile.ne12bsd @@ -14,7 +14,7 @@ INCSDIR=${LOCALBASE}/include/libpng14 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 f0521b2de..5af2b482e 100644 --- a/scripts/makefile.netbsd +++ b/scripts/makefile.netbsd @@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng 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 becbc73e9..edd5fcc4d 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 49789178e..e39d4b0ef 100644 --- a/scripts/makefile.openbsd +++ b/scripts/makefile.openbsd @@ -8,7 +8,7 @@ LIBDIR= ${PREFIX}/lib 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 5e1a04d5f..55408535f 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 a98edf9c5..d638c7058 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 aeffcbe01..4a3f4adb3 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 28356be68..6867ab573 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 da3742b1d..3b965c22a 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 7873a9c73..b78202abb 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 @@ EXPORTS 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 e223ea55a..143509da3 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 @@ EXPORTS png_set_premultiply_alpha png_get_chunk_cache_max png_set_chunk_cache_max + png_check_cHRM + png_check_cHRM_fixed |