[libpng16] Support associated alpha in the simplified api
diff --git a/ANNOUNCE b/ANNOUNCE
index 5b174e3..72411ab 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-Libpng 1.6.33beta03 - September 3, 2017
+Libpng 1.6.33rc02 - September 22, 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 @@
Source files with LF line endings (for Unix/Linux) and with a
"configure" script
- 1.6.33beta03.tar.xz (LZMA-compressed, recommended)
- 1.6.33beta03.tar.gz
+ 1.6.33rc02.tar.xz (LZMA-compressed, recommended)
+ 1.6.33rc02.tar.gz
Source files with CRLF line endings (for Windows), without the
"configure" script
- lp1633b03.7z (LZMA-compressed, recommended)
- lp1633b03.zip
+ lp1633r02.7z (LZMA-compressed, recommended)
+ lp1633r02.zip
Other information:
- 1.6.33beta03-README.txt
- 1.6.33beta03-LICENSE.txt
- libpng-1.6.33beta03-*.asc (armored detached GPG signatures)
+ 1.6.33rc02-README.txt
+ 1.6.33rc02-LICENSE.txt
+ libpng-1.6.33rc02-*.asc (armored detached GPG signatures)
Changes since the last public release (1.6.32):
Version 1.6.33beta01 [August 28, 2017]
@@ -39,10 +39,26 @@
changed date of contrib/oss-fuzz files.
Enabled ARM support in CMakeLists.txt (Bernd Kuhls).
-Version 1.6.33beta03 [September 3, 2017]
+Version 1.6.33beta03 [September 14, 2017]
Fixed incorrect typecast of some arguments to png_malloc() and
png_calloc() that were png_uint_32 instead of png_alloc_size_t
(Bug report by "irwir" in Github libpng issue #175).
+ Use pnglibconf.h.prebuilt when building for ANDROID with cmake (Github
+ issue 162, by rcdailey).
+
+Version 1.6.33rc01 [September 20, 2017]
+ Initialize memory allocated by png_inflate to zero, using memset, to
+ stop an oss-fuzz "use of uninitialized value" detection in png_set_text_2()
+ due to truncated iTXt or zTXt chunk.
+ Initialize memory allocated by png_read_buffer to zero, using memset, to
+ stop an oss-fuzz "use of uninitialized value" detection in
+ png_icc_check_tag_table() due to truncated iCCP chunk.
+ Removed a redundant test (suggested by "irwir" in Github issue #180).
+
+Version 1.6.33rc02 [September 22, 2017]
+ Added an interlaced version of each file in contrib/pngsuite.
+ Relocate new memset() call in pngrutil.c.
+ Removed more redundant tests (suggested by "irwir" in Github issue #180).
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/CHANGES b/CHANGES
index 854512c..f6ba9dd 100644
--- a/CHANGES
+++ b/CHANGES
@@ -833,7 +833,7 @@
Removed the new PNG_CREATED_READ_STRUCT and PNG_CREATED_WRITE_STRUCT modes
which are no longer used.
Eliminated the three new members of png_text when PNG_LEGACY_SUPPORTED is
- defined or when neither PNG_READ_iTXt_SUPPORTED nor PNG_WRITE_iTXT_SUPPORTED
+ defined or when neither PNG_READ_iTXt_SUPPORTED nor PNG_WRITE_iTXt_SUPPORTED
is defined.
Made PNG_NO_READ|WRITE_iTXt the default setting, to avoid memory
overrun when old applications fill the info_ptr->text structure directly.
@@ -6009,10 +6009,26 @@
changed date of contrib/oss-fuzz files.
Enabled ARM support in CMakeLists.txt (Bernd Kuhls).
-Version 1.6.33beta03 [September 3, 2017]
+Version 1.6.33beta03 [September 14, 2017]
Fixed incorrect typecast of some arguments to png_malloc() and
png_calloc() that were png_uint_32 instead of png_alloc_size_t
(Bug report by "irwir" in Github libpng issue #175).
+ Use pnglibconf.h.prebuilt when building for ANDROID with cmake (Github
+ issue 162, by rcdailey).
+
+Version 1.6.33rc01 [September 20, 2017]
+ Initialize memory allocated by png_inflate to zero, using memset, to
+ stop an oss-fuzz "use of uninitialized value" detection in png_set_text_2()
+ due to truncated iTXt or zTXt chunk.
+ Initialize memory allocated by png_read_buffer to zero, using memset, to
+ stop an oss-fuzz "use of uninitialized value" detection in
+ png_icc_check_tag_table() due to truncated iCCP chunk.
+ Removed a redundant test (suggested by "irwir" in Github issue #180).
+
+Version 1.6.33rc02 [September 22, 2017]
+ Added an interlaced version of each file in contrib/pngsuite.
+ Relocate new memset() call in pngrutil.c.
+ Removed more redundant tests (suggested by "irwir" in Github issue #180).
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 98ce9b5..b962792 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -262,7 +262,7 @@
include_directories(${CMAKE_CURRENT_BINARY_DIR})
-if(NOT AWK)
+if(NOT AWK OR ANDROID)
# No awk available to generate sources; use pre-built pnglibconf.h
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt
${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h)
@@ -441,7 +441,7 @@
"${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.chk"
"${CMAKE_CURRENT_BINARY_DIR}/scripts/symbols.out"
"${CMAKE_CURRENT_BINARY_DIR}/scripts/vers.out")
-endif(NOT AWK)
+endif(NOT AWK OR ANDROID)
# OUR SOURCES
set(libpng_public_hdrs
@@ -455,7 +455,7 @@
pnginfo.h
pngstruct.h
)
-if(AWK)
+if(AWK AND NOT ANDROID)
list(APPEND libpng_private_hdrs "${CMAKE_CURRENT_BINARY_DIR}/pngprefix.h")
endif()
set(libpng_sources
@@ -844,7 +844,7 @@
# SET UP LINKS
if(PNG_SHARED)
set_target_properties(png PROPERTIES
-# VERSION 16.${PNGLIB_RELEASE}.1.6.33beta03
+# VERSION 16.${PNGLIB_RELEASE}.1.6.33rc02
VERSION 16.${PNGLIB_RELEASE}.0
SOVERSION 16
CLEAN_DIRECT_OUTPUT 1)
diff --git a/LICENSE b/LICENSE
index cee241a..abdd088 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@
This code is released under the libpng license.
-libpng versions 1.0.7, July 1, 2000 through 1.6.33beta03, September 3, 2017 are
+libpng versions 1.0.7, July 1, 2000 through 1.6.33rc02, September 20, 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
@@ -130,4 +130,4 @@
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-September 3, 2017
+September 20, 2017
diff --git a/README b/README
index 7693ba0..16b075a 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.6.33beta03 - September 3, 2017 (shared library 16.0)
+README for libpng version 1.6.33rc02 - September 20, 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 5dcc00c..5c18137 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,7 +25,7 @@
dnl Version number stuff here:
-AC_INIT([libpng],[1.6.33beta03],[png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng],[1.6.33rc02],[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 AM_PREREQ([1.11.2])
dnl stop configure from automagically running automake
-PNGLIB_VERSION=1.6.33beta03
+PNGLIB_VERSION=1.6.33rc02
PNGLIB_MAJOR=1
PNGLIB_MINOR=6
PNGLIB_RELEASE=33
diff --git a/contrib/oss-fuzz/Dockerfile b/contrib/oss-fuzz/Dockerfile
new file mode 100644
index 0000000..7e4d1eb
--- /dev/null
+++ b/contrib/oss-fuzz/Dockerfile
@@ -0,0 +1,24 @@
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER glennrp@gmail.com
+RUN apt-get update && apt-get install -y make autoconf automake libtool zlib1g-dev
+
+RUN git clone --depth 1 https://github.com/glennrp/libpng.git
+RUN (cd libpng; git log | head -1)
+WORKDIR libpng
+COPY build.sh $SRC/
diff --git a/contrib/oss-fuzz/README.txt b/contrib/oss-fuzz/README.txt
index 795c9aa..cb7fb13 100644
--- a/contrib/oss-fuzz/README.txt
+++ b/contrib/oss-fuzz/README.txt
@@ -1,4 +1,4 @@
-Last changed in libpng 1.6.32 [August 24, 2017]
+Last changed in libpng 1.6.33 [(PENDING RELEASE)]
Copyright (c) 2017 Glenn Randers-Pehrson
This code is released under the libpng license.
@@ -23,14 +23,15 @@
Original
Filename or derived Copyright License
========================= ========== ================ ==========
+ Dockerfile* derived 2017, Glenn R-P Apache 2.0
build.sh* derived 2017, Glenn R-P Apache 2.0
libpng_read_fuzzer.cc derived 2017, Glenn R-P Chromium
libpng_read_fuzzer.options original 2015, Chrome Devs Chromium
png.dict original 2015, Chrome Devs Chromium
README.txt (this file) original 2017, Glenn R-P libpng
- * build.sh is a copy of the file used by oss-fuzz. png.dict and
- libpng_read_fuzzer.* are the actual files used by oss-fuzz, which
- retrieves them from the libpng repository at Github.
+ * Dockerfile and build.sh are copies of the files used by oss-fuzz.
+ png.dict and libpng_read_fuzzer.* are the actual files used by oss-fuzz,
+ which retrieves them from the libpng repository at Github.
To do: exercise the progressive reader and the png encoder.
diff --git a/contrib/oss-fuzz/libpng_read_fuzzer.cc b/contrib/oss-fuzz/libpng_read_fuzzer.cc
index fd13bcd..efd8cf1 100644
--- a/contrib/oss-fuzz/libpng_read_fuzzer.cc
+++ b/contrib/oss-fuzz/libpng_read_fuzzer.cc
@@ -5,7 +5,7 @@
// 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.33beta03 [September 5, 2017]
+// Last changed in libpng 1.6.33beta03 [September 23, 2017]
// The modifications in 2017 by Glenn Randers-Pehrson include
// 1. addition of a PNG_CLEANUP macro,
@@ -169,13 +169,21 @@
int passes = png_set_interlace_handling(png_handler.png_ptr);
png_start_read_image(png_handler.png_ptr);
+ int max_filter = 0;
for (int pass = 0; pass < passes; ++pass) {
for (png_uint_32 y = 0; y < height; ++y) {
png_read_row(png_handler.png_ptr,
static_cast<png_bytep>(png_handler.row_ptr), nullptr);
+ max_filter = png_handler.row_buf[0] > max_filter ?
+ png_handler.row_buf[0] : max_filter;
}
}
+ if (max_filter > 5) {
+ PNG_CLEANUP
+ return 0;
+ }
+
png_read_end(png_handler.png_ptr, png_handler.end_info_ptr);
PNG_CLEANUP
diff --git a/contrib/pngsuite/README b/contrib/pngsuite/README
index 53ba5c8..930aeae 100644
--- a/contrib/pngsuite/README
+++ b/contrib/pngsuite/README
@@ -16,6 +16,8 @@
The "ft*.png" images are "free/libre" replacements for the transparent
corresponding t*.png images in the PngSuite.
+The "i*.png" images are the same complete set, but interlaced.
+
The images in this directory represent the basic PNG color-types:
grayscale (1-16 bit deep), full color (8 or 16 bit), paletted
(1-8 bit) and grayscale or color images with alpha channel. You
diff --git a/contrib/pngsuite/ibasn0g01.png b/contrib/pngsuite/ibasn0g01.png
new file mode 100644
index 0000000..828fa76
--- /dev/null
+++ b/contrib/pngsuite/ibasn0g01.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn0g02.png b/contrib/pngsuite/ibasn0g02.png
new file mode 100644
index 0000000..7fc17e3
--- /dev/null
+++ b/contrib/pngsuite/ibasn0g02.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn0g04.png b/contrib/pngsuite/ibasn0g04.png
new file mode 100644
index 0000000..1beade2
--- /dev/null
+++ b/contrib/pngsuite/ibasn0g04.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn0g08.png b/contrib/pngsuite/ibasn0g08.png
new file mode 100644
index 0000000..90b5305
--- /dev/null
+++ b/contrib/pngsuite/ibasn0g08.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn0g16.png b/contrib/pngsuite/ibasn0g16.png
new file mode 100644
index 0000000..c82f230
--- /dev/null
+++ b/contrib/pngsuite/ibasn0g16.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn2c08.png b/contrib/pngsuite/ibasn2c08.png
new file mode 100644
index 0000000..05d4688
--- /dev/null
+++ b/contrib/pngsuite/ibasn2c08.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn2c16.png b/contrib/pngsuite/ibasn2c16.png
new file mode 100644
index 0000000..399f1be
--- /dev/null
+++ b/contrib/pngsuite/ibasn2c16.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn3p01.png b/contrib/pngsuite/ibasn3p01.png
new file mode 100644
index 0000000..f91e723
--- /dev/null
+++ b/contrib/pngsuite/ibasn3p01.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn3p02.png b/contrib/pngsuite/ibasn3p02.png
new file mode 100644
index 0000000..0f9ce76
--- /dev/null
+++ b/contrib/pngsuite/ibasn3p02.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn3p04.png b/contrib/pngsuite/ibasn3p04.png
new file mode 100644
index 0000000..b2ca720
--- /dev/null
+++ b/contrib/pngsuite/ibasn3p04.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn3p08.png b/contrib/pngsuite/ibasn3p08.png
new file mode 100644
index 0000000..6df8370
--- /dev/null
+++ b/contrib/pngsuite/ibasn3p08.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn4a08.png b/contrib/pngsuite/ibasn4a08.png
new file mode 100644
index 0000000..bda8e3c
--- /dev/null
+++ b/contrib/pngsuite/ibasn4a08.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn4a16.png b/contrib/pngsuite/ibasn4a16.png
new file mode 100644
index 0000000..500f912
--- /dev/null
+++ b/contrib/pngsuite/ibasn4a16.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn6a08.png b/contrib/pngsuite/ibasn6a08.png
new file mode 100644
index 0000000..258f940
--- /dev/null
+++ b/contrib/pngsuite/ibasn6a08.png
Binary files differ
diff --git a/contrib/pngsuite/ibasn6a16.png b/contrib/pngsuite/ibasn6a16.png
new file mode 100644
index 0000000..e4de69f
--- /dev/null
+++ b/contrib/pngsuite/ibasn6a16.png
Binary files differ
diff --git a/contrib/pngsuite/iftbbn0g01.png b/contrib/pngsuite/iftbbn0g01.png
new file mode 100644
index 0000000..6eb27d1
--- /dev/null
+++ b/contrib/pngsuite/iftbbn0g01.png
Binary files differ
diff --git a/contrib/pngsuite/iftbbn0g02.png b/contrib/pngsuite/iftbbn0g02.png
new file mode 100644
index 0000000..46ba497
--- /dev/null
+++ b/contrib/pngsuite/iftbbn0g02.png
Binary files differ
diff --git a/contrib/pngsuite/iftbbn0g04.png b/contrib/pngsuite/iftbbn0g04.png
new file mode 100644
index 0000000..e9db0ad
--- /dev/null
+++ b/contrib/pngsuite/iftbbn0g04.png
Binary files differ
diff --git a/contrib/pngsuite/iftbbn2c16.png b/contrib/pngsuite/iftbbn2c16.png
new file mode 100644
index 0000000..64a9cdf
--- /dev/null
+++ b/contrib/pngsuite/iftbbn2c16.png
Binary files differ
diff --git a/contrib/pngsuite/iftbbn3p08.png b/contrib/pngsuite/iftbbn3p08.png
new file mode 100644
index 0000000..47d6eeb
--- /dev/null
+++ b/contrib/pngsuite/iftbbn3p08.png
Binary files differ
diff --git a/contrib/pngsuite/iftbgn2c16.png b/contrib/pngsuite/iftbgn2c16.png
new file mode 100644
index 0000000..64a9cdf
--- /dev/null
+++ b/contrib/pngsuite/iftbgn2c16.png
Binary files differ
diff --git a/contrib/pngsuite/iftbgn3p08.png b/contrib/pngsuite/iftbgn3p08.png
new file mode 100644
index 0000000..47d6eeb
--- /dev/null
+++ b/contrib/pngsuite/iftbgn3p08.png
Binary files differ
diff --git a/contrib/pngsuite/iftbrn2c08.png b/contrib/pngsuite/iftbrn2c08.png
new file mode 100644
index 0000000..08ebbae
--- /dev/null
+++ b/contrib/pngsuite/iftbrn2c08.png
Binary files differ
diff --git a/contrib/pngsuite/iftbwn0g16.png b/contrib/pngsuite/iftbwn0g16.png
new file mode 100644
index 0000000..4b7537e
--- /dev/null
+++ b/contrib/pngsuite/iftbwn0g16.png
Binary files differ
diff --git a/contrib/pngsuite/iftbwn3p08.png b/contrib/pngsuite/iftbwn3p08.png
new file mode 100644
index 0000000..47d6eeb
--- /dev/null
+++ b/contrib/pngsuite/iftbwn3p08.png
Binary files differ
diff --git a/contrib/pngsuite/iftbyn3p08.png b/contrib/pngsuite/iftbyn3p08.png
new file mode 100644
index 0000000..47d6eeb
--- /dev/null
+++ b/contrib/pngsuite/iftbyn3p08.png
Binary files differ
diff --git a/contrib/pngsuite/iftp0n0g08.png b/contrib/pngsuite/iftp0n0g08.png
new file mode 100644
index 0000000..aa826b8
--- /dev/null
+++ b/contrib/pngsuite/iftp0n0g08.png
Binary files differ
diff --git a/contrib/pngsuite/iftp0n2c08.png b/contrib/pngsuite/iftp0n2c08.png
new file mode 100644
index 0000000..b12bd0a
--- /dev/null
+++ b/contrib/pngsuite/iftp0n2c08.png
Binary files differ
diff --git a/contrib/pngsuite/iftp0n3p08.png b/contrib/pngsuite/iftp0n3p08.png
new file mode 100644
index 0000000..37aa0cb
--- /dev/null
+++ b/contrib/pngsuite/iftp0n3p08.png
Binary files differ
diff --git a/contrib/pngsuite/iftp1n3p08.png b/contrib/pngsuite/iftp1n3p08.png
new file mode 100644
index 0000000..47d6eeb
--- /dev/null
+++ b/contrib/pngsuite/iftp1n3p08.png
Binary files differ
diff --git a/libpng-manual.txt b/libpng-manual.txt
index 4bb876b..2f5c589 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.33beta03 - September 3, 2017
+ libpng version 1.6.33rc02 - September 20, 2017
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2017 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
Based on:
- libpng versions 0.97, January 1998, through 1.6.33beta03 - September 3, 2017
+ libpng versions 0.97, January 1998, through 1.6.33rc02 - September 20, 2017
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2017 Glenn Randers-Pehrson
@@ -5405,7 +5405,7 @@
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.6.33beta03 are Y2K compliant. It is my belief that earlier
+upward through 1.6.33rc02 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 8341d74..0b991b9 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "September 3, 2017"
+.TH LIBPNG 3 "September 20, 2017"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.6.33beta03
+libpng \- Portable Network Graphics (PNG) Reference Library 1.6.33rc02
.SH SYNOPSIS
\fB
#include <png.h>\fP
@@ -518,7 +518,7 @@
.SH LIBPNG.TXT
libpng-manual.txt - A description on how to use and modify libpng
- libpng version 1.6.33beta03 - September 3, 2017
+ libpng version 1.6.33rc02 - September 20, 2017
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2017 Glenn Randers-Pehrson
@@ -529,7 +529,7 @@
Based on:
- libpng versions 0.97, January 1998, through 1.6.33beta03 - September 3, 2017
+ libpng versions 0.97, January 1998, through 1.6.33rc02 - September 20, 2017
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2017 Glenn Randers-Pehrson
@@ -5923,7 +5923,7 @@
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.6.33beta03 are Y2K compliant. It is my belief that earlier
+upward through 1.6.33rc02 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
@@ -6025,7 +6025,7 @@
...
1.5.28 15 10528 15.so.15.28[.0]
...
- 1.6.32 16 10632 16.so.16.32[.0]
+ 1.6.33 16 10633 16.so.16.33[.0]
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
@@ -6081,7 +6081,7 @@
Thanks to Frank J. T. Wojcik for helping with the documentation.
-Libpng version 1.6.33beta03 - September 3, 2017:
+Libpng version 1.6.33rc02 - September 20, 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 code is released under the libpng license.
-libpng versions 1.0.7, July 1, 2000 through 1.6.33beta03, September 3, 2017 are
+libpng versions 1.0.7, July 1, 2000 through 1.6.33rc02, September 20, 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 @@
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-September 3, 2017
+September 20, 2017
.\" end of man page
diff --git a/libpngpf.3 b/libpngpf.3
index 893cff7..f78adb1 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.33beta03
+libpng \- Portable Network Graphics (PNG) Reference Library 1.6.33rc02
(private functions)
.SH SYNOPSIS
\fB\fB#include \fI\fI"pngpriv.h"
diff --git a/png.c b/png.c
index 1f7365d..892e092 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions
*
- * Last changed in libpng 1.6.32 [August 24, 2017]
+ * Last changed in libpng 1.6.33 [(PENDING RELEASE)]
* Copyright (c) 1998-2002,2004,2006-2017 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.)
@@ -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_33beta03 Your_png_h_is_not_version_1_6_33beta03;
+typedef png_libpng_version_1_6_33rc02 Your_png_h_is_not_version_1_6_33rc02;
#ifdef __GNUC__
/* The version tests may need to be added to, but the problem warning has
@@ -816,14 +816,14 @@
#else
# ifdef __STDC__
return PNG_STRING_NEWLINE \
- "libpng version 1.6.33beta03 - September 4, 2017" PNG_STRING_NEWLINE \
+ "libpng version 1.6.33rc02 - September 20, 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.33beta03 - September 4, 2017\
+ return "libpng version 1.6.33rc02 - September 20, 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.";
@@ -1979,7 +1979,6 @@
if (profile_length < 132)
return png_icc_profile_error(png_ptr, colorspace, name, profile_length,
"too short");
-
return 1;
}
@@ -2224,15 +2223,6 @@
* being in range. All defined tag types have an 8 byte header - a 4 byte
* type signature then 0.
*/
- if ((tag_start & 3) != 0)
- {
- /* CNHP730S.icc shipped with Microsoft Windows 64 violates this, it is
- * only a warning here because libpng does not care about the
- * alignment.
- */
- (void)png_icc_profile_error(png_ptr, NULL, name, tag_id,
- "ICC profile tag start not a multiple of 4");
- }
/* This is a hard error; potentially it can cause read outside the
* profile.
@@ -2240,6 +2230,16 @@
if (tag_start > profile_length || tag_length > profile_length - tag_start)
return png_icc_profile_error(png_ptr, colorspace, name, tag_id,
"ICC profile tag outside profile");
+
+ if ((tag_start & 3) != 0)
+ {
+ /* CNHP730S.icc shipped with Microsoft Windows 64 violates this; it is
+ * only a warning here because libpng does not care about the
+ * alignment.
+ */
+ (void)png_icc_profile_error(png_ptr, NULL, name, tag_id,
+ "ICC profile tag start not a multiple of 4");
+ }
}
return 1; /* success, maybe with warnings */
diff --git a/png.h b/png.h
index dfe4416..7697c3c 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.6.33beta03, September 3, 2017
+ * libpng version 1.6.33rc02, September 20, 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.33beta03, September 3, 2017:
+ * libpng versions 0.97, January 1998, through 1.6.33rc02, September 20, 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.33beta03, September 3, 2017 are
+ * libpng versions 1.0.7, July 1, 2000 through 1.6.33rc02, September 20, 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
@@ -213,7 +213,7 @@
* ...
* 1.5.28 15 10527 15.so.15.28[.0]
* ...
- * 1.6.32 16 10632 16.so.16.32[.0]
+ * 1.6.33 16 10633 16.so.16.33[.0]
*
* Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be
@@ -241,13 +241,13 @@
* Y2K compliance in libpng:
* =========================
*
- * September 3, 2017
+ * September 20, 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.33beta03 are Y2K compliant. It is my belief that
+ * upward through 1.6.33rc02 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.33beta03"
-#define PNG_HEADER_VERSION_STRING " libpng version 1.6.33beta03 - September 3, 2017\n"
+#define PNG_LIBPNG_VER_STRING "1.6.33rc02"
+#define PNG_HEADER_VERSION_STRING " libpng version 1.6.33rc02 - September 20, 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 03
+#define PNG_LIBPNG_VER_BUILD 02
/* 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 @@
/* 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_33beta03;
+typedef char* png_libpng_version_1_6_33rc02;
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
*
diff --git a/pngconf.h b/pngconf.h
index f5db2a8..3d29568 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
- * libpng version 1.6.33beta03, September 3, 2017
+ * libpng version 1.6.33rc02, September 20, 2017
*
* Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrutil.c b/pngrutil.c
index 9dc8825..5f0fe5b 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -314,6 +314,7 @@
if (buffer != NULL)
{
+ memset(buffer, 0, new_size); /* just in case */
png_ptr->read_buffer = buffer;
png_ptr->read_buffer_size = new_size;
}
@@ -673,6 +674,8 @@
if (text != NULL)
{
+ memset(text, 0, buffer_size);
+
ret = png_inflate(png_ptr, png_ptr->chunk_name, 1/*finish*/,
png_ptr->read_buffer + prefix_size, &lzsize,
text + prefix_size, newlength);
@@ -736,9 +739,7 @@
{
/* inflateReset failed, store the error message */
png_zstream_error(png_ptr, ret);
-
- if (ret == Z_STREAM_END)
- ret = PNG_UNEXPECTED_ZLIB_RETURN;
+ ret = PNG_UNEXPECTED_ZLIB_RETURN;
}
}
@@ -1476,7 +1477,7 @@
/* Now read the tag table; a variable size buffer is
* needed at this point, allocate one for the whole
* profile. The header check has already validated
- * that none of these stuff will overflow.
+ * that none of this stuff will overflow.
*/
const png_uint_32 tag_count = png_get_uint_32(
profile_header+128);
@@ -1584,11 +1585,9 @@
}
}
- else if (size > 0)
- errmsg = "truncated";
-
+ errmsg = "truncated";
#ifndef __COVERITY__
- else
+ if (size == 0)
errmsg = png_ptr->zstream.msg;
#endif
}
diff --git a/pngtest.c b/pngtest.c
index fcdfa4b..69ea411 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -2153,4 +2153,4 @@
#endif
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef png_libpng_version_1_6_33beta03 Your_png_h_is_not_version_1_6_33beta03;
+typedef png_libpng_version_1_6_33rc02 Your_png_h_is_not_version_1_6_33rc02;
diff --git a/pngwrite.c b/pngwrite.c
index a7662ac..a16d77c 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1940,7 +1940,7 @@
int colormap = (format & PNG_FORMAT_FLAG_COLORMAP);
int linear = !colormap && (format & PNG_FORMAT_FLAG_LINEAR); /* input */
int alpha = !colormap && (format & PNG_FORMAT_FLAG_ALPHA);
- int write_16bit = linear && !colormap && (display->convert_to_8bit == 0);
+ int write_16bit = linear && (display->convert_to_8bit == 0);
# ifdef PNG_BENIGN_ERRORS_SUPPORTED
/* Make sure we error out on any bad situation */
diff --git a/projects/vstudio/README.txt b/projects/vstudio/README.txt
index a9356a4..7ddef27 100644
--- a/projects/vstudio/README.txt
+++ b/projects/vstudio/README.txt
@@ -1,7 +1,7 @@
VisualStudio instructions
-libpng version 1.6.33beta03 - September 3, 2017
+libpng version 1.6.33rc02 - September 20, 2017
Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index dc35de9..9542b45 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
<!--
* zlib.props - location of zlib source
*
- * libpng version 1.6.33beta03 - September 3, 2017
+ * libpng version 1.6.33rc02 - September 20, 2017
*
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
*
diff --git a/scripts/README.txt b/scripts/README.txt
index 8fdeca6..b4f7f7e 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,11 +1,11 @@
-Makefiles for libpng version 1.6.33beta03 - September 3, 2017
+Makefiles for libpng version 1.6.33rc02 - September 20, 2017
pnglibconf.h.prebuilt => Stores configuration settings
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng16.so.16.1.6.33beta03)
+ (gcc, creates libpng16.so.16.1.6.33rc02)
makefile.linux-opt=> Linux/ELF makefile with hardware optimizations on
- (gcc, creates libpng16.so.16.1.6.33beta03)
+ (gcc, creates libpng16.so.16.1.6.33rc02)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
ansi2knr (Requires ansi2knr.c from
@@ -35,12 +35,12 @@
makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def)
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
makefile.sggcc => Silicon Graphics (gcc,
- creates libpng16.so.16.1.6.33beta03)
+ creates libpng16.so.16.1.6.33rc02)
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.solaris => Solaris 2.X makefile (gcc,
- creates libpng16.so.16.1.6.33beta03)
+ creates libpng16.so.16.1.6.33rc02)
makefile.so9 => Solaris 9 makefile (gcc,
- creates libpng16.so.16.1.6.33beta03)
+ creates libpng16.so.16.1.6.33rc02)
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.sunos => Sun makefile
makefile.32sunu => Sun Ultra 32-bit makefile
diff --git a/scripts/def.c b/scripts/def.c
index 48a238e..71df176 100644
--- a/scripts/def.c
+++ b/scripts/def.c
@@ -21,7 +21,7 @@
PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE"
PNG_DFN ""
PNG_DFN "EXPORTS"
-PNG_DFN ";Version 1.6.33beta03"
+PNG_DFN ";Version 1.6.33rc02"
#define PNG_EXPORTA(ordinal, type, name, args, attributes)\
PNG_DFN "@" SYMBOL_PREFIX "@@" name "@"
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index 1ffe3e5..f851d49 100644
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -11,7 +11,7 @@
# Modeled after libxml-config.
-version=1.6.33beta03
+version=1.6.33rc02
prefix=""
libdir=""
libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index fd99925..686f45a 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -5,6 +5,6 @@
Name: libpng
Description: Loads and saves PNG files
-Version: 1.6.33beta03
+Version: 1.6.33rc02
Libs: -L${libdir} -lpng16
Cflags: -I${includedir}
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index 7cbb841..19cc31f 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -17,7 +17,7 @@
LIB= png16
SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.6.33beta03
+SHLIB_MINOR= 1.6.33rc02
SRCS= 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 08d19db..9a0eca7 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -17,7 +17,7 @@
LIB= png
SHLIB_MAJOR= 16
-SHLIB_MINOR= 1.6.33beta03
+SHLIB_MINOR= 1.6.33rc02
SRCS= 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.openbsd b/scripts/makefile.openbsd
index 7364dce..5e20e8b 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -11,7 +11,7 @@
MANDIR= ${PREFIX}/man/cat
SHLIB_MAJOR= 16
-SHLIB_MINOR= 1.6.33beta03
+SHLIB_MINOR= 1.6.33rc02
LIB= png
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 698e719..26fdc2c 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -1,8 +1,8 @@
-/* libpng 1.6.33beta03 STANDARD API DEFINITION */
+/* libpng 1.6.33rc02 STANDARD API DEFINITION */
/* pnglibconf.h - library build configuration */
-/* Libpng version 1.6.33beta03 - September 3, 2017 */
+/* Libpng version 1.6.33rc02 - September 20, 2017 */
/* Copyright (c) 1998-2017 Glenn Randers-Pehrson */
diff --git a/scripts/symbols.def b/scripts/symbols.def
index 6ebbbcc..9d587f2 100644
--- a/scripts/symbols.def
+++ b/scripts/symbols.def
@@ -1,4 +1,4 @@
-;Version 1.6.33beta03
+;Version 1.6.33rc02
;--------------------------------------------------------------
; LIBPNG symbol list as a Win32 DEF file
; Contains all the symbols that can be exported from libpng