From 945759162e02035cd420a251b01f40540bc9ac42 Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Fri, 18 Aug 2017 03:14:09 -0500 Subject: [PATCH] [libpng16] Imported from libpng-1.6.32rc01.tar --- ANNOUNCE | 23 ++++++++++++----------- CHANGES | 7 ++++--- CMakeLists.txt | 2 +- LICENSE | 2 +- README | 2 +- configure.ac | 4 ++-- contrib/pngminus/png2pnm.c | 7 ++++--- contrib/pngminus/pnm2png.c | 18 +++++++++++++----- libpng-manual.txt | 6 +++--- libpng.3 | 16 ++++++++-------- libpngpf.3 | 2 +- png.c | 6 +++--- png.h | 20 ++++++++++---------- pngconf.h | 2 +- pngtest.c | 2 +- projects/vstudio/README.txt | 2 +- projects/vstudio/zlib.props | 2 +- scripts/README.txt | 12 ++++++------ 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 +- 26 files changed, 82 insertions(+), 71 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 7789cc045..0a5e3ed7d 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ -Libpng 1.6.32beta12 - August 11, 2017 +Libpng 1.6.32rc01 - August 18, 2017 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.32beta12.tar.xz (LZMA-compressed, recommended) - 1.6.32beta12.tar.gz + 1.6.32rc01.tar.xz (LZMA-compressed, recommended) + 1.6.32rc01.tar.gz Source files with CRLF line endings (for Windows), without the "configure" script - lp1632b12.7z (LZMA-compressed, recommended) - lp1632b12.zip + lp1632r01.7z (LZMA-compressed, recommended) + lp1632r01.zip Other information: - 1.6.32beta12-README.txt - 1.6.32beta12-LICENSE.txt - libpng-1.6.32beta12-*.asc (armored detached GPG signatures) + 1.6.32rc01-README.txt + 1.6.32rc01-LICENSE.txt + libpng-1.6.32rc01-*.asc (armored detached GPG signatures) Changes since the last public release (1.6.31): @@ -94,11 +94,12 @@ Version 1.6.32beta11 [August 7, 2017] after the keyword has been read. Check that the eXIf chunk has at least 2 bytes and begins with "II" or "MM". -Version 1.6.32beta12 [August 11, 2017] +Version 1.6.32rc01 [August 18, 2017] Added a set of "huge_xxxx_chunk.png" files to contrib/testpngs/crashers, one for each known chunk type, with length = 2GB-1. - Check for 0 return from png_get_rowbytes() in contrib/pngminus/*.c to stop - some Coverity issues (162705, 162706, and 162707). + Check for 0 return from png_get_rowbytes() and added some (size_t) typecasts + in contrib/pngminus/*.c to stop some Coverity issues (162705, 162706, + and 162707). Renamed chunks in contrib/testpngs/crashers to avoid having files whose names differ only in case; this causes problems with some platforms (github issue #172). diff --git a/CHANGES b/CHANGES index fd6465c2f..4cab9aa80 100644 --- a/CHANGES +++ b/CHANGES @@ -5977,11 +5977,12 @@ Version 1.6.32beta11 [August 7, 2017] after the keyword has been read. Check that the eXIf chunk has at least 2 bytes and begins with "II" or "MM". -Version 1.6.32beta12 [August 11, 2017] +Version 1.6.32rc01 [August 18, 2017] Added a set of "huge_xxxx_chunk.png" files to contrib/testpngs/crashers, one for each known chunk type, with length = 2GB-1. - Check for 0 return from png_get_rowbytes() in contrib/pngminus/*.c to stop - some Coverity issues (162705, 162706, and 162707). + Check for 0 return from png_get_rowbytes() and added some (size_t) typecasts + in contrib/pngminus/*.c to stop some Coverity issues (162705, 162706, + and 162707). Renamed chunks in contrib/testpngs/crashers to avoid having files whose names differ only in case; this causes problems with some platforms (github issue #172). diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cfefb3dc..b3f785e85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -844,7 +844,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW) # SET UP LINKS if(PNG_SHARED) set_target_properties(png PROPERTIES -# VERSION 16.${PNGLIB_RELEASE}.1.6.32beta12 +# VERSION 16.${PNGLIB_RELEASE}.1.6.32rc01 VERSION 16.${PNGLIB_RELEASE}.0 SOVERSION 16 CLEAN_DIRECT_OUTPUT 1) diff --git a/LICENSE b/LICENSE index cdb949c63..06b979051 100644 --- a/LICENSE +++ b/LICENSE @@ -10,7 +10,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000 through 1.6.32beta12, August 7, 2017 are +libpng versions 1.0.7, July 1, 2000 through 1.6.32rc01, August 18, 2017 are Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are derived from libpng-1.0.6, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals diff --git a/README b/README index f52c8b881..8bab9589d 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.6.32beta12 - August 7, 2017 (shared library 16.0) +README for libpng version 1.6.32rc01 - August 18, 2017 (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 0162e37cc..b1cada4b7 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ AC_PREREQ([2.68]) dnl Version number stuff here: -AC_INIT([libpng],[1.6.32beta12],[png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng],[1.6.32rc01],[png-mng-implement@lists.sourceforge.net]) AC_CONFIG_MACRO_DIR([scripts]) # libpng does not follow GNU file name conventions (hence 'foreign') @@ -46,7 +46,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.32beta12 +PNGLIB_VERSION=1.6.32rc01 PNGLIB_MAJOR=1 PNGLIB_MINOR=6 PNGLIB_RELEASE=32 diff --git a/contrib/pngminus/png2pnm.c b/contrib/pngminus/png2pnm.c index 64f287c29..39a9f4673 100644 --- a/contrib/pngminus/png2pnm.c +++ b/contrib/pngminus/png2pnm.c @@ -323,21 +323,21 @@ BOOL png2pnm (FILE *png_file, FILE *pnm_file, FILE *alpha_file, /* row_bytes is the width x number of channels x (bit-depth / 8) */ row_bytes = png_get_rowbytes (png_ptr, info_ptr); - if ((row_bytes == 0 || (size_t)height > ((size_t)(-1))/(size_t)row_bytes) + if ((row_bytes == 0 || (size_t)height > ((size_t)(-1))/(size_t)row_bytes)) { /* too big */ png_destroy_read_struct (&png_ptr, &info_ptr, NULL); return FALSE; } if ((png_pixels = (png_byte *) - malloc (row_bytes * height * sizeof (png_byte))) == NULL) + malloc ((size_t)row_bytes * (size_t)height * sizeof (png_byte))) == NULL) { png_destroy_read_struct (&png_ptr, &info_ptr, NULL); return FALSE; } if ((row_pointers = (png_byte **) - malloc (height * sizeof (png_bytep))) == NULL) + malloc ((size_t)height * sizeof (png_bytep))) == NULL) { png_destroy_read_struct (&png_ptr, &info_ptr, NULL); free (png_pixels); @@ -443,6 +443,7 @@ BOOL png2pnm (FILE *png_file, FILE *pnm_file, FILE *alpha_file, if (png_pixels != (unsigned char*) NULL) free (png_pixels); + PNG_UNUSED(raw) /* to quiet a Coverity defect */ return TRUE; } /* end of source */ diff --git a/contrib/pngminus/pnm2png.c b/contrib/pngminus/pnm2png.c index ebfcad17e..1b550b8cf 100644 --- a/contrib/pngminus/pnm2png.c +++ b/contrib/pngminus/pnm2png.c @@ -1,10 +1,12 @@ /* * pnm2png.c --- conversion from PBM/PGM/PPM-file to PNG-file - * copyright (C) 1999 by Willem van Schaik + * copyright (C) 1999,2015,2017 by Willem van Schaik * * version 1.0 - 1999.10.15 - First version. * version 1.1 - 2015.07.29 - Fixed leaks (Glenn Randers-Pehrson) * version 1.2 - 2017.04.22 - Add buffer-size check + * 1.3 - 2017.08.24 - Fix potential overflow in buffer-size check + * (Glenn Randers-Pehrson) * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose and without fee is hereby granted, @@ -371,10 +373,12 @@ BOOL pnm2png (FILE *pnm_file, FILE *png_file, FILE *alpha_file, BOOL interlace, row_bytes = (width * channels * bit_depth + 7) / 8; else #endif - /* row_bytes is the width x number of channels x (bit-depth / 8) */ + /* row_bytes is the width x number of channels x (bit-depth / 8) */ row_bytes = width * channels * ((bit_depth <= 8) ? 1 : 2); - if (!row_bytes || height > ((size_t)(-1))/row_bytes) /* too big */ { + if ((row_bytes == 0 || (size_t)height > ((size_t)(-1))/(size_t)row_bytes) + { + /* too big */ return FALSE; } if ((png_pixels = (png_byte *) @@ -387,7 +391,8 @@ BOOL pnm2png (FILE *pnm_file, FILE *png_file, FILE *alpha_file, BOOL interlace, for (row = 0; row < (int) height; row++) { #if defined(PNG_WRITE_INVERT_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) - if (packed_bitmap) { + if (packed_bitmap) + { for (i = 0; i < (int) row_bytes; i++) /* png supports this format natively so no conversion is needed */ *pix_ptr++ = get_data (pnm_file, 8); @@ -508,6 +513,8 @@ BOOL pnm2png (FILE *pnm_file, FILE *png_file, FILE *alpha_file, BOOL interlace, if (png_pixels != (unsigned char*) NULL) free (png_pixels); + PNG_UNUSED(raw) /* Quiet a Coverity defect */ + return TRUE; } /* end of pnm2png */ @@ -524,7 +531,8 @@ void get_token(FILE *pnm_file, char *token) do { ret = fgetc(pnm_file); - if (ret == '#') { + if (ret == '#') + { /* the rest of this line is a comment */ do { diff --git a/libpng-manual.txt b/libpng-manual.txt index 8e533b88c..2bed5f041 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.32beta12 - August 7, 2017 + libpng version 1.6.32rc01 - August 18, 2017 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2017 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.32beta12 - August 7, 2017 + libpng versions 0.97, January 1998, through 1.6.32rc01 - August 18, 2017 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2017 Glenn Randers-Pehrson @@ -5405,7 +5405,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.32beta12 are Y2K compliant. It is my belief that earlier +upward through 1.6.32rc01 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 53b46bb5c..1fba69892 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "August 7, 2017" +.TH LIBPNG 3 "August 18, 2017" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.32beta12 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.32rc01 .SH SYNOPSIS \fB #include \fP @@ -518,7 +518,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.32beta12 - August 7, 2017 + libpng version 1.6.32rc01 - August 18, 2017 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2017 Glenn Randers-Pehrson @@ -529,7 +529,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.32beta12 - August 7, 2017 + libpng versions 0.97, January 1998, through 1.6.32rc01 - August 18, 2017 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2017 Glenn Randers-Pehrson @@ -5923,7 +5923,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.32beta12 are Y2K compliant. It is my belief that earlier +upward through 1.6.32rc01 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 @@ -6081,7 +6081,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.6.32beta12 - August 7, 2017: +Libpng version 1.6.32rc01 - August 18, 2017: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -6106,7 +6106,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000 through 1.6.32beta12, August 7, 2017 are +libpng versions 1.0.7, July 1, 2000 through 1.6.32rc01, August 18, 2017 are Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are derived from libpng-1.0.6, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals @@ -6234,7 +6234,7 @@ files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). Glenn Randers-Pehrson glennrp at users.sourceforge.net -August 7, 2017 +August 18, 2017 .\" end of man page diff --git a/libpngpf.3 b/libpngpf.3 index 1ecd48472..e5af3c6d4 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,6 +1,6 @@ .TH LIBPNGPF 3 "April 1, 2017" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.32beta12 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.32rc01 (private functions) .SH SYNOPSIS \fB\fB#include \fI\fI"pngpriv.h" diff --git a/png.c b/png.c index 1c4107d9f..1a5888c7b 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_32beta12 Your_png_h_is_not_version_1_6_32beta12; +typedef png_libpng_version_1_6_32rc01 Your_png_h_is_not_version_1_6_32rc01; #ifdef __GNUC__ /* The version tests may need to be added to, but the problem warning has @@ -816,14 +816,14 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.32beta12 - August 7, 2017" PNG_STRING_NEWLINE \ + "libpng version 1.6.32rc01 - August 18, 2017" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2017 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.32beta12 - August 7, 2017\ + return "libpng version 1.6.32rc01 - August 18, 2017\ Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; diff --git a/png.h b/png.h index 89a78e599..77370f685 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.32beta12, August 7, 2017 + * libpng version 1.6.32rc01, August 18, 2017 * * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -12,7 +12,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.32beta12, August 7, 2017: + * libpng versions 0.97, January 1998, through 1.6.32rc01, August 18, 2017: * Glenn Randers-Pehrson. * See also "Contributing Authors", below. */ @@ -25,7 +25,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.0.7, July 1, 2000 through 1.6.32beta12, August 7, 2017 are + * libpng versions 1.0.7, July 1, 2000 through 1.6.32rc01, August 18, 2017 are * Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are * derived from libpng-1.0.6, and are distributed according to the same * disclaimer and license as libpng-1.0.6 with the following individuals @@ -241,13 +241,13 @@ * Y2K compliance in libpng: * ========================= * - * August 7, 2017 + * August 18, 2017 * * 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.32beta12 are Y2K compliant. It is my belief that + * upward through 1.6.32rc01 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 @@ -309,8 +309,8 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.32beta12" -#define PNG_HEADER_VERSION_STRING " libpng version 1.6.32beta12 - August 7, 2017\n" +#define PNG_LIBPNG_VER_STRING "1.6.32rc01" +#define PNG_HEADER_VERSION_STRING " libpng version 1.6.32rc01 - August 18, 2017\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -324,7 +324,7 @@ * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ -#define PNG_LIBPNG_VER_BUILD 12 +#define PNG_LIBPNG_VER_BUILD 01 /* Release Status */ #define PNG_LIBPNG_BUILD_ALPHA 1 @@ -341,7 +341,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. @@ -459,7 +459,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_32beta12; +typedef char* png_libpng_version_1_6_32rc01; /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. * diff --git a/pngconf.h b/pngconf.h index 974fbc68f..6b9a733f4 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.32beta12, August 7, 2017 + * libpng version 1.6.32rc01, August 18, 2017 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngtest.c b/pngtest.c index 0adb744b1..1e90289a0 100644 --- a/pngtest.c +++ b/pngtest.c @@ -2153,4 +2153,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_32beta12 Your_png_h_is_not_version_1_6_32beta12; +typedef png_libpng_version_1_6_32rc01 Your_png_h_is_not_version_1_6_32rc01; diff --git a/projects/vstudio/README.txt b/projects/vstudio/README.txt index af10997e0..a3e644b33 100644 --- a/projects/vstudio/README.txt +++ b/projects/vstudio/README.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.6.32beta12 - August 7, 2017 +libpng version 1.6.32rc01 - August 18, 2017 Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props index fa2fa7ffb..6e828b8e9 100644 --- a/projects/vstudio/zlib.props +++ b/projects/vstudio/zlib.props @@ -2,7 +2,7 @@