From 6d8c88177af0bd8732489f11e7c63cf861e30321 Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Sun, 21 Dec 2014 09:10:57 -0600 Subject: [PATCH] [libpng16] Imported from libpng-1.6.16rc01.tar --- ANNOUNCE | 20 +++++++++++------- CHANGES | 4 ++++ CMakeLists.txt | 2 +- LICENSE | 2 +- README | 2 +- configure.ac | 4 ++-- libpng-manual.txt | 6 +++--- libpng.3 | 13 ++++++------ libpngpf.3 | 2 +- png.c | 39 ++++++++++++++++++++++++++++++++--- png.h | 19 +++++++++-------- pngconf.h | 2 +- pngrutil.c | 7 ++++--- pngtest.c | 2 +- projects/vstudio/readme.txt | 2 +- projects/vstudio/zlib.props | 2 +- scripts/README.txt | 10 ++++----- scripts/def.c | 2 +- scripts/libpng-config-head.in | 2 +- scripts/libpng.pc.in | 2 +- scripts/makefile.ne12bsd | 2 +- scripts/makefile.netbsd | 2 +- scripts/makefile.openbsd | 2 +- scripts/pnglibconf.h.prebuilt | 4 ++-- scripts/symbols.def | 2 +- 25 files changed, 100 insertions(+), 56 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index d5446335a2..163e5a897d 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ -Libpng 1.6.16beta03 - December 21, 2014 +Libpng 1.6.16rc01 - December 21, 2014 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. @@ -8,20 +8,20 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - 1.6.16beta03.tar.xz (LZMA-compressed, recommended) - 1.6.16beta03.tar.gz + 1.6.16rc01.tar.xz (LZMA-compressed, recommended) + 1.6.16rc01.tar.gz Source files with CRLF line endings (for Windows), without the "configure" script - lp1616b03.7z (LZMA-compressed, recommended) - lp1616b03.zip + lp1616r01.7z (LZMA-compressed, recommended) + lp1616r01.zip Other information: - 1.6.16beta03-README.txt - 1.6.16beta03-LICENSE.txt - libpng-1.6.16beta03-*.asc (armored detached GPG signatures) + 1.6.16rc01-README.txt + 1.6.16rc01-LICENSE.txt + libpng-1.6.16rc01-*.asc (armored detached GPG signatures) Changes since the last public release (1.6.15): @@ -38,6 +38,10 @@ Version 1.6.16beta02 [December 15, 2014] Version 1.6.16beta03 [December 21, 2014] Quiet a "comparison always true" warning in pngstest.c (John Bowler). +Version 1.6.16rc01 [December 21, 2014] + Restored a test on width that was removed from png.c at libpng-1.6.9 + (Bug report by Alex Eubanks). + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/CHANGES b/CHANGES index d8c50599b3..198aa3a9e7 100644 --- a/CHANGES +++ b/CHANGES @@ -5112,6 +5112,10 @@ Version 1.6.16beta02 [December 15, 2014] Version 1.6.16beta03 [December 21, 2014] Quiet a "comparison always true" warning in pngstest.c (John Bowler). +Version 1.6.16rc01 [December 21, 2014] + Restored a test on width that was removed from png.c at libpng-1.6.9 + (Bug report by Alex Eubanks). + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/CMakeLists.txt b/CMakeLists.txt index 4770b9598d..0e69eaf20a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -253,7 +253,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW) # SET UP LINKS if(PNG_SHARED) set_target_properties(${PNG_LIB_NAME} PROPERTIES -# VERSION 16.${PNGLIB_RELEASE}.1.6.16beta03 +# VERSION 16.${PNGLIB_RELEASE}.1.6.16rc01 VERSION 16.${PNGLIB_RELEASE}.0 SOVERSION 16 CLEAN_DIRECT_OUTPUT 1) diff --git a/LICENSE b/LICENSE index 8417fad6e6..6fff3b795f 100644 --- a/LICENSE +++ b/LICENSE @@ -10,7 +10,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.2.6, August 15, 2004, through 1.6.16beta03, December 21, 2014, are +libpng versions 1.2.6, August 15, 2004, through 1.6.16rc01, December 21, 2014, are Copyright (c) 2004, 2006-2014 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 diff --git a/README b/README index a8d22b4cfc..5343c11cad 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.6.16beta03 - December 21, 2014 (shared library 16.0) +README for libpng version 1.6.16rc01 - December 21, 2014 (shared library 16.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. diff --git a/configure.ac b/configure.ac index 6633a4d977..4b89cfda94 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ AC_PREREQ([2.68]) dnl Version number stuff here: -AC_INIT([libpng],[1.6.16beta03],[png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng],[1.6.16rc01],[png-mng-implement@lists.sourceforge.net]) AC_CONFIG_MACRO_DIR([scripts]) # libpng does not follow GNU file name conventions (hence 'foreign') @@ -39,7 +39,7 @@ dnl automake, so the following is not necessary (and is not defined anyway): dnl AM_PREREQ([1.11.2]) dnl stop configure from automagically running automake -PNGLIB_VERSION=1.6.16beta03 +PNGLIB_VERSION=1.6.16rc01 PNGLIB_MAJOR=1 PNGLIB_MINOR=6 PNGLIB_RELEASE=16 diff --git a/libpng-manual.txt b/libpng-manual.txt index 171e70e975..8c8af5705c 100644 --- a/libpng-manual.txt +++ b/libpng-manual.txt @@ -1,6 +1,6 @@ libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.16beta03 - December 21, 2014 + libpng version 1.6.16rc01 - December 21, 2014 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.16beta03 - December 21, 2014 + libpng versions 0.97, January 1998, through 1.6.16rc01 - December 21, 2014 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -5280,7 +5280,7 @@ 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.6.16beta03 are Y2K compliant. It is my belief that earlier +upward through 1.6.16rc01 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer diff --git a/libpng.3 b/libpng.3 index d1d2c481b9..7e58b23c24 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,6 +1,6 @@ .TH LIBPNG 3 "December 21, 2014" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.16beta03 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.16rc01 .SH SYNOPSIS \fB #include \fP @@ -504,7 +504,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng. .SH LIBPNG.TXT libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.16beta03 - December 21, 2014 + libpng version 1.6.16rc01 - December 21, 2014 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -515,7 +515,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.16beta03 - December 21, 2014 + libpng versions 0.97, January 1998, through 1.6.16rc01 - December 21, 2014 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2014 Glenn Randers-Pehrson @@ -5784,7 +5784,7 @@ 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.6.16beta03 are Y2K compliant. It is my belief that earlier +upward through 1.6.16rc01 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer @@ -6034,6 +6034,7 @@ the first widely used release: 1.6.15rc01-03 16 10615 16.so.16.15[.0] 1.6.15 16 10615 16.so.16.15[.0] 1.6.16beta01-03 16 10616 16.so.16.16[.0] + 1.6.16rc01 16 10616 16.so.16.16[.0] Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -6090,7 +6091,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.6.16beta03 - December 21, 2014: +Libpng version 1.6.16rc01 - December 21, 2014: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -6113,7 +6114,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.2.6, August 15, 2004, through 1.6.16beta03, December 21, 2014, are +libpng versions 1.2.6, August 15, 2004, through 1.6.16rc01, December 21, 2014, are Copyright (c) 2004,2006-2014 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 diff --git a/libpngpf.3 b/libpngpf.3 index 3ccb558897..92d4309cf3 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,6 +1,6 @@ .TH LIBPNGPF 3 "December 21, 2014" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.16beta03 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.16rc01 (private functions) .SH SYNOPSIS \fB#include \fI"pngpriv.h" diff --git a/png.c b/png.c index 5c4e59c99b..5a7b5b0cc2 100644 --- a/png.c +++ b/png.c @@ -14,7 +14,7 @@ #include "pngpriv.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_16beta03 Your_png_h_is_not_version_1_6_16beta03; +typedef png_libpng_version_1_6_16rc01 Your_png_h_is_not_version_1_6_16rc01; /* Tells libpng that we have already handled the first "num_bytes" bytes * of the PNG file signature. If the PNG data is embedded into another @@ -769,13 +769,13 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.16beta03 - December 21, 2014" PNG_STRING_NEWLINE \ + "libpng version 1.6.16rc01 - December 21, 2014" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2014 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 "libpng version 1.6.16beta03 - December 21, 2014\ + return "libpng version 1.6.16rc01 - December 21, 2014\ Copyright (c) 1998-2014 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; @@ -2461,6 +2461,17 @@ png_colorspace_set_rgb_coefficients(png_structrp png_ptr) #endif /* COLORSPACE */ +#ifdef __GNUC__ +/* This exists solely to work round a warning from GNU C. */ +static int /* PRIVATE */ +png_gt(size_t a, size_t b) +{ + return a > b; +} +#else +# define png_gt(a,b) ((a) > (b)) +#endif + void /* PRIVATE */ png_check_IHDR(png_const_structrp png_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, @@ -2480,6 +2491,28 @@ png_check_IHDR(png_const_structrp png_ptr, png_warning(png_ptr, "Invalid image width in IHDR"); error = 1; } + + else if (png_gt(width, + (PNG_SIZE_MAX >> 3) /* 8-byte RGBA pixels */ + - 48 /* big_row_buf hack */ + - 1 /* filter byte */ + - 7*8 /* rounding width to multiple of 8 pix */ + - 8)) /* extra max_pixel_depth pad */ + { + /* The size of the row must be within the limits of this architecture. + * Because the read code can perform arbitrary transformations the + * maximum size is checked here. Because the code in png_read_start_row + * adds extra space "for safety's sake" in several places a conservative + * limit is used here. + * + * NOTE: it would be far better to check the size that is actually used, + * but the effect in the real world is minor and the changes are more + * extensive, therefore much more dangerous and much more difficult to + * write in a way that avoids compiler warnings. + */ + png_warning(png_ptr, "Image width is too large for this architecture"); + error = 1; + } else { # ifdef PNG_SET_USER_LIMITS_SUPPORTED diff --git a/png.h b/png.h index ce9b7c53e3..b31edd2237 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.16beta03, December 21, 2014 + * libpng version 1.6.16rc01, December 21, 2014 * Copyright (c) 1998-2014 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.) @@ -11,7 +11,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.6.16beta03, December 21, 2014: Glenn + * libpng versions 0.97, January 1998, through 1.6.16rc01, December 21, 2014: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -210,6 +210,7 @@ * 1.6.15rc01-03 16 10615 16.so.16.15[.0] * 1.6.15 16 10615 16.so.16.15[.0] * 1.6.16beta01-03 16 10616 16.so.16.16[.0] + * 1.6.16rc01 16 10616 16.so.16.16[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -241,7 +242,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.2.6, August 15, 2004, through 1.6.16beta03, December 21, 2014, are + * libpng versions 1.2.6, August 15, 2004, through 1.6.16rc01, December 21, 2014, are * Copyright (c) 2004, 2006-2014 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: @@ -359,7 +360,7 @@ * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.16beta03 are Y2K compliant. It is my belief that + * upward through 1.6.16rc01 are Y2K compliant. It is my belief that * earlier versions were also Y2K compliant. * * Libpng only has two year fields. One is a 2-byte unsigned integer @@ -421,9 +422,9 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.16beta03" +#define PNG_LIBPNG_VER_STRING "1.6.16rc01" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.6.16beta03 - December 21, 2014\n" + " libpng version 1.6.16rc01 - December 21, 2014\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -437,7 +438,7 @@ * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ -#define PNG_LIBPNG_VER_BUILD 03 +#define PNG_LIBPNG_VER_BUILD 01 /* Release Status */ #define PNG_LIBPNG_BUILD_ALPHA 1 @@ -454,7 +455,7 @@ #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with PNG_LIBPNG_BUILD_PRIVATE */ -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA +#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_RC /* Careful here. At one time, Guy wanted to use 082, but that would be octal. * We must not include leading zeros. @@ -567,7 +568,7 @@ extern "C" { /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef char* png_libpng_version_1_6_16beta03; +typedef char* png_libpng_version_1_6_16rc01; /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. * diff --git a/pngconf.h b/pngconf.h index e1940592b5..fc2a1215e7 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.16beta03,December 21, 2014 + * libpng version 1.6.16rc01,December 21, 2014 * * Copyright (c) 1998-2014 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngrutil.c b/pngrutil.c index 4e6202438c..d4653c695f 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -1,7 +1,7 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.6.16 [(PENDING RELEASE)] + * Last changed in libpng 1.6.15 [November 20, 2014] * Copyright (c) 1998-2014 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.) @@ -854,12 +854,13 @@ png_handle_IHDR(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) /* Set up other useful info */ png_ptr->pixel_depth = (png_byte)(png_ptr->bit_depth * png_ptr->channels); - png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->width); + png_debug1(3, "bit_depth = %d", png_ptr->bit_depth); png_debug1(3, "channels = %d", png_ptr->channels); - png_debug1(3, "rowbytes = %lu", (unsigned long)png_ptr->rowbytes); png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, color_type, interlace_type, compression_type, filter_type); + png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->width); + png_debug1(3, "rowbytes = %lu", (unsigned long)png_ptr->rowbytes); } /* Read and check the palette */ diff --git a/pngtest.c b/pngtest.c index 4bdcfcba79..f3c0abf3ac 100644 --- a/pngtest.c +++ b/pngtest.c @@ -2008,4 +2008,4 @@ main(void) #endif /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_16beta03 Your_png_h_is_not_version_1_6_16beta03; +typedef png_libpng_version_1_6_16rc01 Your_png_h_is_not_version_1_6_16rc01; diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt index 1b8eae236f..c523a79483 100644 --- a/projects/vstudio/readme.txt +++ b/projects/vstudio/readme.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.6.16beta03 - December 21, 2014 +libpng version 1.6.16rc01 - December 21, 2014 Copyright (c) 1998-2010 Glenn Randers-Pehrson diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props index 1ebb893635..7c52b19f9c 100644 --- a/projects/vstudio/zlib.props +++ b/projects/vstudio/zlib.props @@ -2,7 +2,7 @@