Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Commit 60a6d95

Browse files
committed
Bug 1224244 - Update in-tree libpng to version 1.6.19. r=seth
1 parent fde5c53 commit 60a6d95

21 files changed

Lines changed: 664 additions & 552 deletions

configure.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ _SUBDIR_CONFIG_ARGS="$ac_configure_args"
5151
dnl Set the version number of the libs included with mozilla
5252
dnl ========================================================
5353
MOZJPEG=62
54-
MOZPNG=10617
54+
MOZPNG=10619
5555
NSPR_VERSION=4
5656
NSPR_MINVER=4.11
5757
NSS_VERSION=3

media/libpng/CHANGES

Lines changed: 124 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3756,8 +3756,9 @@ Version 1.5.7beta04 [November 17, 2011]
37563756

37573757
Version 1.5.7beta05 [November 25, 2011]
37583758
Removed "zTXt" from warning in generic chunk decompression function.
3759-
Validate time settings passed to pngset() and png_convert_to_rfc1123()
3760-
(Frank Busse).
3759+
Validate time settings passed to png_set_tIME() and png_convert_to_rfc1123()
3760+
(Frank Busse). Note: This prevented CVE-2015-7981 from affecting
3761+
libpng-1.5.7 and later.
37613762
Added MINGW support to CMakeLists.txt
37623763
Reject invalid compression flag or method when reading the iTXt chunk.
37633764
Backed out 'simplified' API changes. The API seems too complex and there
@@ -3803,12 +3804,13 @@ Version 1.6.0beta01 [December 15, 2011]
38033804
(the other two required headers aren't used). Non-ANSI systems that don't
38043805
have stddef.h or limits.h will have to provide an appropriate fake
38053806
containing the relevant types and #defines.
3806-
The use of FAR/far has been eliminated and the definition of png_alloc_size_t
3807-
is now controlled by a flag so that 'small size_t' systems can select it
3808-
if necessary. Libpng 1.6 may not currently work on such systems -- it
3809-
seems likely that it will ask 'malloc' for more than 65535 bytes with any
3810-
image that has a sufficiently large row size (rather than simply failing
3811-
to read such images).
3807+
Dropped support for 16-bit platforms. The use of FAR/far has been eliminated
3808+
and the definition of png_alloc_size_t is now controlled by a flag so
3809+
that 'small size_t' systems can select it if necessary. Libpng 1.6 may
3810+
not currently work on such systems -- it seems likely that it will
3811+
ask 'malloc' for more than 65535 bytes with any image that has a
3812+
sufficiently large row size (rather than simply failing to read such
3813+
images).
38123814
New tools directory containing tools used to generate libpng code.
38133815
Fixed race conditions in parallel make builds. With higher degrees of
38143816
parallelism during 'make' the use of the same temporary file names such
@@ -4420,7 +4422,7 @@ Version 1.6.1beta02 [February 19, 2013]
44204422

44214423
Version 1.6.1beta03 [February 22, 2013]
44224424
Fixed ALIGNED_MEMORY support.
4423-
Allow run-time ARM NEON checking to be disabled. A new configure option:
4425+
Added a new configure option:
44244426
--enable-arm-neon=always will stop the run-time checks. New checks
44254427
within arm/arm_init.c will cause the code not to be compiled unless
44264428
__ARM_NEON__ is set. This should make it fail safe (if someone asks
@@ -4439,10 +4441,10 @@ Version 1.6.1beta05 [March 1, 2013]
44394441
Version 1.6.1beta06 [March 4, 2013]
44404442
Better documentation of unknown handling API interactions.
44414443
Corrected Android builds and corrected libpng.vers with symbol
4442-
prefixing. This adds an API to set optimization options externally,
4444+
prefixing. It also makes those tests compile and link on Android.
4445+
Added an API png_set_option() to set optimization options externally,
44434446
providing an alternative and general solution for the non-portable
4444-
run-time tests used by the ARM Neon code. It also makes those tests
4445-
compile and link on Android.
4447+
run-time tests used by the ARM Neon code, using the PNG_ARM_NEON option.
44464448
The order of settings vs options in pnglibconf.h is reversed to allow
44474449
settings to depend on options and options can now set (or override) the
44484450
defaults for settings.
@@ -4540,7 +4542,8 @@ Version 1.6.3beta05 [May 9, 2013]
45404542
Calculate our own zlib windowBits when decoding rather than trusting the
45414543
CMF bytes in the PNG datastream.
45424544
Added an option to force maximum window size for inflating, which was
4543-
the behavior of libpng15 and earlier.
4545+
the behavior of libpng15 and earlier, via a new PNG_MAXIMUM_INFLATE_WINDOW
4546+
option for png_set_options().
45444547
Added png-fix-itxt and png-fix-too-far-back to the built programs and
45454548
removed warnings from the source code and timepng that are revealed as
45464549
a result.
@@ -5143,7 +5146,9 @@ Version 1.6.17beta01 [January 29, 2015]
51435146
Added testing of png_set_packing() to pngvalid.c
51445147
Regenerated configure scripts in the *.tar distributions with libtool-2.4.4
51455148
Implement previously untested cases of libpng transforms in pngvalid.c
5146-
Fixed byte order in 2-byte filler, in png_do_read_filler().
5149+
Fixed byte order in png_do_read_filler() with 16-bit input. Previously
5150+
the high and low bytes of the filler, from png_set_filler() or from
5151+
png_set_add_alpha(), were read in the wrong order.
51475152
Made the check for out-of-range values in png_set_tRNS() detect
51485153
values that are exactly 2^bit_depth, and work on 16-bit platforms.
51495154
Merged some parts of libpng-1.6.17beta01 and libpng-1.7.0beta47.
@@ -5225,7 +5230,7 @@ Version 1.6.18beta01 [April 1, 2015]
52255230

52265231
Version 1.6.18beta02 [April 26, 2015]
52275232
Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
5228-
(Bug report by Viktor Szaka'ts).
5233+
(Bug report by Viktor Szakats).
52295234

52305235
Version 1.6.18beta03 [May 6, 2015]
52315236
Replaced "unexpected" with an integer (0xabadca11) in pngset.c
@@ -5305,6 +5310,110 @@ Version 1.6.18rc03 [July 15, 2015]
53055310
Version 1.6.18 [July 23, 2015]
53065311
No changes.
53075312

5313+
Version 1.6.19beta01 [July 30, 2015]
5314+
Updated obsolete information about the simplified API macros in the
5315+
manual pages (Bug report by Arc Riley).
5316+
Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
5317+
Rearranged png.h to put the major sections in the same order as
5318+
in libpng17.
5319+
Eliminated unused PNG_COST_SHIFT, PNG_WEIGHT_SHIFT, PNG_COST_FACTOR, and
5320+
PNG_WEIGHT_FACTOR macros.
5321+
Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
5322+
(Bug report by Viktor Szakats). Several warnings remain and are
5323+
unavoidable, where we test for overflow.
5324+
Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
5325+
Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
5326+
5327+
Version 1.6.19beta02 [August 19, 2015]
5328+
Moved config.h.in~ from the "libpng_autotools_files" list to the
5329+
"libpng_autotools_extra" list in autogen.sh because it was causing a
5330+
false positive for missing files (bug report by Robert C. Seacord).
5331+
Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
5332+
to suppress clang warnings (Bug report by Viktor Szakats).
5333+
Fixed some bad links in the man page.
5334+
Changed "n bit" to "n-bit" in comments.
5335+
Added signed/unsigned 16-bit safety net. This removes the dubious
5336+
0x8000 flag definitions on 16-bit systems. They aren't supported
5337+
yet the defs *probably* work, however it seems much safer to do this
5338+
and be advised if anyone, contrary to advice, is building libpng 1.6
5339+
on a 16-bit system. It also adds back various switch default clauses
5340+
for GCC; GCC errors out if they are not present (with an appropriately
5341+
high level of warnings).
5342+
Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
5343+
Seacord).
5344+
Fixed the recently reported 1's complement security issue by replacing
5345+
the value that is illegal in the PNG spec, in both signed and unsigned
5346+
values, with 0. Illegal unsigned values (anything greater than or equal
5347+
to 0x80000000) can still pass through, but since these are not illegal
5348+
in ANSI-C (unlike 0x80000000 in the signed case) the checking that
5349+
occurs later can catch them (John Bowler).
5350+
5351+
Version 1.6.19beta03 [September 26, 2015]
5352+
Fixed png_save_int_32 when int is not 2's complement (John Bowler).
5353+
Updated libpng16 with all the recent test changes from libpng17,
5354+
including changes to pngvalid.c to ensure that the original,
5355+
distributed, version of contrib/visupng/cexcept.h can be used
5356+
(John Bowler).
5357+
pngvalid contains the correction to the use of SAVE/STORE_
5358+
UNKNOWN_CHUNKS; a bug revealed by changes in libpng 1.7. More
5359+
tests contain the --strict option to detect warnings and the
5360+
pngvalid-standard test has been corrected so that it does not
5361+
turn on progressive-read. There is a separate test which does
5362+
that. (John Bowler)
5363+
Also made some signed/unsigned fixes.
5364+
Make pngstest error limits version specific. Splitting the machine
5365+
generated error structs out to a file allows the values to be updated
5366+
without changing pngstest.c itself. Since libpng 1.6 and 1.7 have
5367+
slightly different error limits this simplifies maintenance. The
5368+
makepngs.sh script has also been updated to more accurately reflect
5369+
current problems in libpng 1.7 (John Bowler).
5370+
Incorporated new test PNG files into make check. tests/pngstest-*
5371+
are changed so that the new test files are divided into 8 groups by
5372+
gamma and alpha channel. These tests have considerably better code
5373+
and pixel-value coverage than contrib/pngsuite; however,coverage is
5374+
still incomplete (John Bowler).
5375+
Removed the '--strict' in 1.6 because of the double-gamma-correction
5376+
warning, updated pngstest-errors.h for the errors detected with the
5377+
new contrib/testspngs PNG test files (John Bowler).
5378+
5379+
Version 1.6.19beta04 [October 15, 2015]
5380+
Worked around rgb-to-gray issues in libpng 1.6. The previous
5381+
attempts to ignore the errors in the code aren't quite enough to
5382+
deal with the 'channel selection' encoding added to libpng 1.7; abort.
5383+
pngvalid.c is changed to drop this encoding in prior versions.
5384+
Fixed 'pow' macros in pngvalid.c. It is legal for 'pow' to be a
5385+
macro, therefore the argument list cannot contain preprocessing
5386+
directives. Make sure pow is a function where this happens. This is
5387+
a minimal safe fix, the issue only arises in non-performance-critical
5388+
code (bug report by Curtis Leach, fix by John Bowler).
5389+
Added sPLT support to pngtest.c
5390+
5391+
Version 1.6.19rc01 [October 23, 2015]
5392+
No changes.
5393+
5394+
Version 1.6.19rc02 [October 31, 2015]
5395+
Prevent setting or writing over-length PLTE chunk (Cosmin Truta).
5396+
Silently truncate over-length PLTE chunk while reading.
5397+
Libpng incorrectly calculated the output rowbytes when the application
5398+
decreased either the number of channels or the bit depth (or both) in
5399+
a user transform. This was safe; libpng overallocated buffer space
5400+
(potentially by quite a lot; up to 4 times the amount required) but,
5401+
from 1.5.4 on, resulted in a png_error (John Bowler).
5402+
5403+
Version 1.6.19rc03 [November 3, 2015]
5404+
Fixed some inconsequential cut-and-paste typos in png_set_cHRM_XYZ_fixed().
5405+
Clarified COPYRIGHT information to state explicitly that versions
5406+
are derived from previous versions.
5407+
Removed much of the long list of previous versions from png.h and
5408+
libpng.3.
5409+
5410+
Version 1.6.19rc04 [November 5, 2015]
5411+
Fixed new bug with CRC error after reading an over-length palette
5412+
(bug report by Cosmin Truta).
5413+
5414+
Version 1.6.19 [November 12, 2015]
5415+
Cleaned up coding style in png_handle_PLTE().
5416+
53085417
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
53095418
(subscription required; visit
53105419
https://lists.sourceforge.net/lists/listinfo/png-mng-implement

media/libpng/LICENSE

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,19 @@ pnglibconf.h and moz.build are distributed under the Mozilla Public License,
1212
v. 2.0. If a copy of the MPL was not distributed with this file, You can
1313
obtain one at http://mozilla.org/MPL/2.0/.
1414

15-
This modified version of libpng code adds animated PNG support. This code is
15+
This modified version of libpng code adds animated PNG support and is
1616
released under the libpng license described below. The modifications are
1717
Copyright (c) 2006-2007 Andrew Smith, Copyright (c) 2008-2015 Max Stepin,
18-
and can be identified by "#ifdef PNG_APNG_SUPPORTED / #endif" directives
18+
and are delimited by "#ifdef PNG_APNG_SUPPORTED / #endif" directives
1919
surrounding them in the modified libpng source files.
2020

2121
This code is released under the libpng license.
2222

23-
libpng versions 1.0.7, July 1, 2000, through 1.6.18, July 23, 2015, are
24-
Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
25-
distributed according to the same disclaimer and license as libpng-1.0.6
26-
with the following individuals added to the list of Contributing Authors:
23+
libpng versions 1.0.7, July 1, 2000, through 1.6.19, November 12, 2015, are
24+
Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, are
25+
derived from libpng-1.0.6, and are distributed according to the same
26+
disclaimer and license as libpng-1.0.6 with the following individuals
27+
added to the list of Contributing Authors:
2728

2829
Simon-Pierre Cadieux
2930
Eric S. Raymond
@@ -42,18 +43,20 @@ and with the following additions to the disclaimer:
4243
the user.
4344

4445
libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
45-
Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according
46-
to the same disclaimer and license as libpng-0.96, with the following
47-
individuals added to the list of Contributing Authors:
46+
Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
47+
libpng-0.96, and are distributed according to the same disclaimer and
48+
license as libpng-0.96, with the following individuals added to the list
49+
of Contributing Authors:
4850

4951
Tom Lane
5052
Glenn Randers-Pehrson
5153
Willem van Schaik
5254

5355
libpng versions 0.89, June 1996, through 0.96, May 1997, are
54-
Copyright (c) 1996-1997 Andreas Dilger, and are
55-
distributed according to the same disclaimer and license as libpng-0.88,
56-
with the following individuals added to the list of Contributing Authors:
56+
Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
57+
and are distributed according to the same disclaimer and license as
58+
libpng-0.88, with the following individuals added to the list of
59+
Contributing Authors:
5760

5861
John Bowler
5962
Kevin Bracey
@@ -100,6 +103,8 @@ supporting the PNG file format in commercial products. If you use this
100103
source code in a product, acknowledgment is not required but would be
101104
appreciated.
102105

106+
END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
107+
103108
A "png_get_copyright" function is available, for convenient use in "about"
104109
boxes and the like:
105110

@@ -114,4 +119,4 @@ the additional disclaimers inserted at version 1.0.7.
114119

115120
Glenn Randers-Pehrson
116121
glennrp at users.sourceforge.net
117-
July 23, 2015
122+
November 12, 2015

media/libpng/MOZCHANGES

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
Changes made to pristine libpng source by mozilla.org developers.
33

4+
2015/11/12 -- Synced with libpng-1.6.19 (bug #1224244).
5+
46
2015/07/30 -- Synced with libpng-1.6.18 (bug #1186977).
57

68
2015/03/27 -- Synced with libpng-1.6.17 (bug #1147909).

media/libpng/README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
README for libpng version 1.6.18 - July 23, 2015 (shared library 16.0)
1+
README for libpng version 1.6.19 - November 12, 2015 (shared library 16.0)
22
See the note about version numbers near the top of png.h
33

44
See INSTALL for instructions on how to install libpng.

0 commit comments

Comments
 (0)