From 0e06b5948cabffc9b783d45992eae74cd616131e Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Tue, 6 Mar 2018 13:54:52 -0600 Subject: [PATCH] [libpng16] Imported from libpng-1.6.35beta01.tar --- ANNOUNCE | 7 +++++-- CHANGES | 5 ++++- LICENSE | 4 ++-- README | 2 +- contrib/oss-fuzz/build.sh | 2 +- contrib/oss-fuzz/libpng_read_fuzzer.cc | 6 +++--- contrib/pngsuite/bad_interlace_conversions.txt | 9 +++++++++ contrib/powerpc-vsx/README | 2 +- libpng-manual.txt | 4 ++-- libpng.3 | 12 ++++++------ png.c | 4 ++-- png.h | 14 +++++++------- pngconf.h | 2 +- pngrtran.c | 5 ++--- pngset.c | 2 +- projects/vstudio/README.txt | 2 +- projects/vstudio/zlib.props | 2 +- scripts/README.txt | 2 +- scripts/pnglibconf.h.prebuilt | 2 +- 19 files changed, 51 insertions(+), 37 deletions(-) create mode 100644 contrib/pngsuite/bad_interlace_conversions.txt diff --git a/ANNOUNCE b/ANNOUNCE index 1b30feab1..bc7be631e 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ -Libpng 1.6.35beta01 - January 8, 2018 +Libpng 1.6.35beta01 - March 6, 2018 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. @@ -24,7 +24,7 @@ Other information: Changes since the last public release (1.6.34): -Version 1.6.35beta01 [January 8, 2018] +Version 1.6.35beta01 [March 6, 2018] Restored 21 of the contrib/pngsuite/i*.png, which do not cause test failures. Placed the remainder in contrib/pngsuite/interlaced/i*.png. Added calls to png_set_*() transforms commonly used by browsers to @@ -33,6 +33,9 @@ Version 1.6.35beta01 [January 8, 2018] Fixed miscellaneous typos (Patch by github user "luzpaz") Change "ASM C" to "C ASM" in CMakeLists.txt Fixed incorrect handling of bKGD chunk in sub-8-bit files (Cosmin) + Added hardware optimization directories to zip and 7z distributions. + Fixed incorrect bitmask for options. + Fixed many spelling typos. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index c7ce777fd..99f768146 100644 --- a/CHANGES +++ b/CHANGES @@ -6040,7 +6040,7 @@ Version 1.6.33 [September 28, 2017] Version 1.6.34 [September 29, 2017] Removed contrib/pngsuite/i*.png; some of them caused test failures. -Version 1.6.35beta01 [January 8, 2018] +Version 1.6.35beta01 [March 6, 2018] Restored 21 of the contrib/pngsuite/i*.png, which do not cause test failures. Placed the remainder in contrib/pngsuite/interlaced/i*.png. Added calls to png_set_*() transforms commonly used by browsers to @@ -6049,6 +6049,9 @@ Version 1.6.35beta01 [January 8, 2018] Fixed miscellaneous typos (Patch by github user "luzpaz"). Change "ASM C" to "C ASM" in CMakeLists.txt Fixed incorrect handling of bKGD chunk in sub-8-bit files (Cosmin) + Added hardware optimization directories to zip and 7z distributions. + Fixed incorrect bitmask for options. + Fixed many spelling typos. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/LICENSE b/LICENSE index 2272059bf..27c08460c 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.35beta01, January 8, 2018 are +libpng versions 1.0.7, July 1, 2000 through 1.6.35beta01, March 6, 2018 are Copyright (c) 2000-2002, 2004, 2006-2018 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 @@ -130,4 +130,4 @@ any encryption software. See the EAR, paragraphs 734.3(b)(3) and Glenn Randers-Pehrson glennrp at users.sourceforge.net -January 8, 2018 +March 6, 2018 diff --git a/README b/README index bd24508d4..8b4a1bcda 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.6.35beta01 - September 29, 2017 (shared library 16.0) +README for libpng version 1.6.35beta01 - March 6, 2018 (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/contrib/oss-fuzz/build.sh b/contrib/oss-fuzz/build.sh index 877518f46..f1bc2f6d6 100755 --- a/contrib/oss-fuzz/build.sh +++ b/contrib/oss-fuzz/build.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# Last changed in libpng 1.6.35 [October 7, 2017] +# Last changed in libpng 1.6.35 [March 6, 2018] # # Revisions by Glenn Randers-Pehrson, 2017: # 1. Build only the library, not the tools (changed "make -j$(nproc) all" to diff --git a/contrib/oss-fuzz/libpng_read_fuzzer.cc b/contrib/oss-fuzz/libpng_read_fuzzer.cc index c0caa6bd0..32f0af29a 100644 --- a/contrib/oss-fuzz/libpng_read_fuzzer.cc +++ b/contrib/oss-fuzz/libpng_read_fuzzer.cc @@ -1,11 +1,11 @@ // libpng_read_fuzzer.cc -// Copyright 2017 Glenn Randers-Pehrson +// Copyright 2017-2018 Glenn Randers-Pehrson // Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that may // be found in the LICENSE file https://cs.chromium.org/chromium/src/LICENSE -// Last changed in libpng 1.6.35 [October 30, 2017] +// Last changed in libpng 1.6.35 [March 6, 2018] // The modifications in 2017 by Glenn Randers-Pehrson include // 1. addition of a PNG_CLEANUP macro, @@ -165,7 +165,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { png_set_gray_to_rgb(png_handler.png_ptr); png_set_expand(png_handler.png_ptr); png_set_packing(png_handler.png_ptr); - // png_set_scale_16(png_handler.png_ptr); + png_set_scale_16(png_handler.png_ptr); png_set_tRNS_to_alpha(png_handler.png_ptr); int passes = png_set_interlace_handling(png_handler.png_ptr); diff --git a/contrib/pngsuite/bad_interlace_conversions.txt b/contrib/pngsuite/bad_interlace_conversions.txt new file mode 100644 index 000000000..8afbde790 --- /dev/null +++ b/contrib/pngsuite/bad_interlace_conversions.txt @@ -0,0 +1,9 @@ +basn0g01.png +basn0g02.png +basn0g04.png +basn3p01.png +basn3p02.png +basn3p04.png +ftbbn0g01.png +ftbbn0g02.png +ftbbn0g04.png diff --git a/contrib/powerpc-vsx/README b/contrib/powerpc-vsx/README index e566147ea..4970a52c6 100644 --- a/contrib/powerpc-vsx/README +++ b/contrib/powerpc-vsx/README @@ -46,7 +46,7 @@ everything should be static. It must define the function: static int png_have_vsx(png_structp png_ptr); -That function must return 1 if ARM NEON instructions are supported, 0 if not. +That function must return 1 if POWERPC_VSX instructions are supported, 0 if not. It must not execute png_error unless it detects a bug. A png_error will prevent the reading of the PNG and in the future, writing too. diff --git a/libpng-manual.txt b/libpng-manual.txt index 3e97db417..abecdf212 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.35beta01 - January 8, 2018 + libpng version 1.6.35beta01 - March 6, 2018 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.35beta01 - January 8, 2018 + libpng versions 0.97, January 1998, through 1.6.35beta01 - March 6, 2018 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2017 Glenn Randers-Pehrson diff --git a/libpng.3 b/libpng.3 index 2b23891d2..4bcfc6ae0 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,4 +1,4 @@ -.TH LIBPNG 3 "January 8, 2018" +.TH LIBPNG 3 "March 6, 2018" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35beta01 .SH SYNOPSIS @@ -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.35beta01 - January 8, 2018 + libpng version 1.6.35beta01 - March 6, 2018 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.35beta01 - January 8, 2018 + libpng versions 0.97, January 1998, through 1.6.35beta01 - March 6, 2018 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2017 Glenn Randers-Pehrson @@ -6090,7 +6090,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.6.35beta01 - January 8, 2018: +Libpng version 1.6.35beta01 - March 6, 2018: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -6115,7 +6115,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000 through 1.6.35beta01, January 8, 2018 are +libpng versions 1.0.7, July 1, 2000 through 1.6.35beta01, March 6, 2018 are Copyright (c) 2000-2002, 2004, 2006-2018 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 @@ -6243,7 +6243,7 @@ files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). Glenn Randers-Pehrson glennrp at users.sourceforge.net -January 8, 2018 +March 6, 2018 .\" end of man page diff --git a/png.c b/png.c index cc6029ecc..a7beaaf23 100644 --- a/png.c +++ b/png.c @@ -816,14 +816,14 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.35beta01 - January 8, 2018" PNG_STRING_NEWLINE \ + "libpng version 1.6.35beta01 - March 6, 2018" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2018 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.35beta01 - January 8, 2018\ + return "libpng version 1.6.35beta01 - March 6, 2018\ Copyright (c) 1998-2002,2004,2006-2018 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 04c36b534..9143faf0a 100644 --- a/png.h +++ b/png.h @@ -1,9 +1,9 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.35beta01, September 29, 2017 + * libpng version 1.6.35beta01, March 6, 2018 * - * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson + * Copyright (c) 1998-2002,2004,2006-2018 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.) * @@ -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.35beta01, September 29, 2017: + * libpng versions 0.97, January 1998, through 1.6.35beta01, March 6, 2018: * Glenn Randers-Pehrson. * See also "Contributing Authors", below. */ @@ -25,8 +25,8 @@ * * This code is released under the libpng license. * - * libpng versions 1.0.7, July 1, 2000 through 1.6.35beta01, September 29, 2017 are - * Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are + * libpng versions 1.0.7, July 1, 2000 through 1.6.35beta01, March 6, 2018 are + * Copyright (c) 2000-2002, 2004, 2006-2018 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 * added to the list of Contributing Authors: @@ -241,7 +241,7 @@ * Y2K compliance in libpng: * ========================= * - * September 29, 2017 + * March 6, 2018 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -310,7 +310,7 @@ /* Version information for png.h - this should match the version in png.c */ #define PNG_LIBPNG_VER_STRING "1.6.35beta01" -#define PNG_HEADER_VERSION_STRING " libpng version 1.6.35beta01 - September 29, 2017\n" +#define PNG_HEADER_VERSION_STRING " libpng version 1.6.35beta01 - March 6, 2018\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 diff --git a/pngconf.h b/pngconf.h index 048da1d46..c242026fb 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.35beta01, September 29, 2017 + * libpng version 1.6.35beta01, March 6, 2018 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngrtran.c b/pngrtran.c index 40c2ce56f..8cfb331ad 100644 --- a/pngrtran.c +++ b/pngrtran.c @@ -2,7 +2,7 @@ /* pngrtran.c - transforms the data in a row for PNG readers * * Last changed in libpng 1.6.35 [(PENDING RELEASE)] - * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson + * Copyright (c) 1998-2002,2004,2006-2018 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.) * @@ -4755,8 +4755,7 @@ png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info) &(png_ptr->trans_color)); else - png_do_expand(row_info, png_ptr->row_buf + 1, - (png_const_color_16p)NULL); + png_do_expand(row_info, png_ptr->row_buf + 1, NULL); } } #endif diff --git a/pngset.c b/pngset.c index 3e8be737a..6f3a1ee11 100644 --- a/pngset.c +++ b/pngset.c @@ -623,7 +623,7 @@ png_set_PLTE(png_structrp png_ptr, png_inforp info_ptr, PNG_MAX_PALETTE_LENGTH * (sizeof (png_color)))); if (num_palette > 0) - memcpy(png_ptr->palette, palette, (unsigned int)PNG_MAX_PALETTE_LENGTH * + memcpy(png_ptr->palette, palette, (unsigned int)num_palette * (sizeof (png_color))); info_ptr->palette = png_ptr->palette; info_ptr->num_palette = png_ptr->num_palette = (png_uint_16)num_palette; diff --git a/projects/vstudio/README.txt b/projects/vstudio/README.txt index c617ec13a..bb06b716a 100644 --- a/projects/vstudio/README.txt +++ b/projects/vstudio/README.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.6.35beta01 - September 29, 2017 +libpng version 1.6.35beta01 - March 6, 2018 Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props index f447118a9..39799cc2f 100644 --- a/projects/vstudio/zlib.props +++ b/projects/vstudio/zlib.props @@ -2,7 +2,7 @@