Skip to content

Commit 976d0a1

Browse files
committed
8372534: Update Libpng to 1.6.51
8316030: Update Libpng to 1.6.40 8329004: Update Libpng to 1.6.43 8348598: Update Libpng to 1.6.47 Reviewed-by: abakhtin, serb Backport-of: be7966c633830516c703f14610e4fef1bbe7f57d
1 parent 5c0b36a commit 976d0a1

File tree

23 files changed

+3696
-3695
lines changed

23 files changed

+3696
-3695
lines changed

THIRD_PARTY_README

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2131,7 +2131,7 @@ included with JDK 8 and OpenJDK 8 source distributions.
21312131

21322132
-------------------------------------------------------------------------------
21332133

2134-
%% This notice is provided with respect to libpng 1.6.39, which may be
2134+
%% This notice is provided with respect to libpng 1.6.51, which may be
21352135
included with JRE 8, JDK 8, and OpenJDK 8.
21362136

21372137
--- begin of LICENSE ---
@@ -2142,11 +2142,11 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
21422142
PNG Reference Library License version 2
21432143
---------------------------------------
21442144

2145-
Copyright (c) 1995-2022 The PNG Reference Library Authors.
2146-
Copyright (c) 2018-2022 Cosmin Truta
2147-
Copyright (c) 1998-2018 Glenn Randers-Pehrson
2148-
Copyright (c) 1996-1997 Andreas Dilger
2149-
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
2145+
Copyright (C) 1995-2025 The PNG Reference Library Authors.
2146+
Copyright (C) 2018-2025 Cosmin Truta
2147+
Copyright (C) 1998-2018 Glenn Randers-Pehrson
2148+
Copyright (C) 1996-1997 Andreas Dilger
2149+
Copyright (C) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
21502150

21512151
The software is supplied "as is", without warranty of any kind,
21522152
express or implied, including, without limitation, the warranties
@@ -2306,7 +2306,9 @@ PNG REFERENCE LIBRARY AUTHORS
23062306
This is the list of PNG Reference Library ("libpng") Contributing
23072307
Authors, for copyright and licensing purposes.
23082308

2309+
* Adam Richter
23092310
* Andreas Dilger
2311+
* Chris Blume
23102312
* Cosmin Truta
23112313
* Dave Martindale
23122314
* Eric S. Raymond
@@ -2317,39 +2319,54 @@ Authors, for copyright and licensing purposes.
23172319
* James Yu
23182320
* John Bowler
23192321
* Kevin Bracey
2322+
* Lucas Chollet
23202323
* Magnus Holmgren
23212324
* Mandar Sahastrabuddhe
2325+
* Manfred Schlaegl
23222326
* Mans Rullgard
23232327
* Matt Sarett
23242328
* Mike Klein
23252329
* Pascal Massimino
23262330
* Paul Schmidt
2331+
* Philippe Antoine
23272332
* Qiang Zhou
23282333
* Sam Bushell
23292334
* Samuel Williams
23302335
* Simon-Pierre Cadieux
23312336
* Tim Wegner
2337+
* Tobias Stoeckmann
23322338
* Tom Lane
23332339
* Tom Tanner
23342340
* Vadim Barkov
23352341
* Willem van Schaik
23362342
* Zhijie Liang
2343+
* Apple Inc.
2344+
- Zixu Wang (王子旭)
23372345
* Arm Holdings
2338-
- Richard Townsend
2339-
* Google Inc.
2340-
- Dan Field
2341-
- Leon Scroggins III
2342-
- Matt Sarett
2343-
- Mike Klein
2344-
- Sami Boukortt
2346+
- Richard Townsend
2347+
* Google LLC
2348+
- Dan Field
2349+
- Dragoș Tiselice
2350+
- Leon Scroggins III
2351+
- Matt Sarett
2352+
- Mike Klein
2353+
- Sami Boukortt
2354+
- Wan-Teh Chang
2355+
* Loongson Technology Corporation Ltd.
2356+
- GuXiWei (顾希伟)
2357+
- JinBo (金波)
2358+
- ZhangLixia (张利霞)
2359+
* Samsung Group
2360+
- Filip Wasil
23452361

23462362
The build projects, the build scripts, the test scripts, and other
2347-
files in the "ci", "projects", "scripts" and "tests" directories, have
2363+
files in the "projects", "scripts" and "tests" directories, have
23482364
other copyright owners, but are released under the libpng license.
23492365

2350-
Some files in the "contrib" directory, and some tools-generated files
2351-
that are distributed with libpng, have other copyright owners, and are
2352-
released under other open source licenses.
2366+
Some files in the "ci" and "contrib" directories, as well as some
2367+
of the tools-generated files that are distributed with libpng, have
2368+
other copyright owners, and are released under other open source
2369+
licenses.
23532370

23542371
--- end of LICENSE ---
23552372

jdk/src/share/native/sun/awt/libpng/CHANGES

Lines changed: 194 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ Version 0.97 [January, 1998]
204204
Added simple sRGB support (Glenn R-P)
205205
Easier conditional compiling, e.g.,
206206
define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
207-
all configurable options can be selected from command-line instead
207+
all configurable options can be selected from command line instead
208208
of having to edit pngconf.h (Glenn R-P)
209209
Fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
210210
Added more conditions for png_do_background, to avoid changing
@@ -942,7 +942,7 @@ Version 1.0.8 [July 24, 2000]
942942
Version 1.0.9beta1 [November 10, 2000]
943943
Fixed typo in scripts/makefile.hpux
944944
Updated makevms.com in scripts and contrib/* and contrib/* (Martin Zinser)
945-
Fixed seqence-point bug in contrib/pngminus/png2pnm (Martin Zinser)
945+
Fixed sequence-point bug in contrib/pngminus/png2pnm (Martin Zinser)
946946
Changed "cdrom.com" in documentation to "libpng.org"
947947
Revised pnggccrd.c to get it all working, and updated makefile.gcmmx (Greg).
948948
Changed type of "params" from voidp to png_voidp in png_read|write_png().
@@ -2295,7 +2295,7 @@ Version 1.4.0beta58 [May 14, 2009]
22952295
Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
22962296

22972297
Version 1.4.0beta59 [May 15, 2009]
2298-
Reformated sources in libpng style (3-space indentation, comment format)
2298+
Reformatted sources in libpng style (3-space indentation, comment format)
22992299
Fixed typo in libpng docs (PNG_FILTER_AVE should be PNG_FILTER_AVG)
23002300
Added sections about the git repository and our coding style to the
23012301
documentation
@@ -2661,7 +2661,7 @@ Version 1.4.1beta06 [January 28, 2010]
26612661

26622662
Version 1.4.1beta07 [February 6, 2010]
26632663
Folded some long lines in the source files.
2664-
Added defineable PNG_USER_CHUNK_CACHE_MAX, PNG_USER_CHUNK_MALLOC_MAX,
2664+
Added definable PNG_USER_CHUNK_CACHE_MAX, PNG_USER_CHUNK_MALLOC_MAX,
26652665
and a PNG_USER_LIMITS_SUPPORTED flag.
26662666
Eliminated use of png_ptr->irowbytes and reused the slot in png_ptr as
26672667
png_ptr->png_user_chunk_malloc_max.
@@ -3919,7 +3919,7 @@ Version 1.6.0beta08 [February 1, 2012]
39193919
version checking to configure.ac
39203920
Improved pngstest speed by not doing redundant tests and add const to
39213921
the background parameter of png_image_finish_read. The --background
3922-
option is now done automagically only when required, so that commandline
3922+
option is now done automagically only when required, so that command-line
39233923
option no longer exists.
39243924
Cleaned up pngpriv.h to consistently declare all functions and data.
39253925
Also eliminated PNG_CONST_DATA, which is apparently not needed but we
@@ -4052,7 +4052,7 @@ Version 1.6.0beta16 [March 6, 2012]
40524052
(in fact this is harmless, but the PNG data produced may be sub-optimal).
40534053

40544054
Version 1.6.0beta17 [March 10, 2012]
4055-
Fixed PNG_LIBPNG_BUILD_BASE_TYPE definition.
4055+
Fixed PNG_LIBPNG_BUILD_BASE_TYPE definition.
40564056
Reject all iCCP chunks after the first, even if the first one is invalid.
40574057
Deflate/inflate was reworked to move common zlib calls into single
40584058
functions [rw]util.c. A new shared keyword check routine was also added
@@ -4962,7 +4962,7 @@ Version 1.6.13beta01 [July 4, 2014]
49624962
Changed "if defined(__ARM_NEON__)" to
49634963
"if (defined(__ARM_NEON__) || defined(__ARM_NEON))" (James Wu).
49644964
Fixed clang no-warning builds: png_digit was defined but never used.
4965-
4965+
49664966
Version 1.6.13beta02 [July 21, 2014]
49674967
Fixed an incorrect separator ("/" should be "\") in scripts/makefile.vcwin32
49684968
(bug report from Wolfgang S. Kechel). Bug was introduced in libpng-1.6.11.
@@ -5453,7 +5453,7 @@ Version 1.6.21beta01 [December 11, 2015]
54535453
Version 1.6.21beta02 [December 14, 2015]
54545454
Moved png_check_keyword() from pngwutil.c to pngset.c
54555455
Removed LE/BE dependencies in pngvalid, to 'fix' the current problem
5456-
in the BigEndian tests by not testing it, making the BE code the same
5456+
in the BigEndian tests by not testing it, making the BE code the same
54575457
as the LE version.
54585458
Fixes to pngvalid for various reduced build configurations (eliminate unused
54595459
statics) and a fix for the case in rgb_to_gray when the digitize option
@@ -5517,7 +5517,7 @@ Version 1.6.22beta03 [March 9, 2016]
55175517
Added a common-law trademark notice and export control information
55185518
to the LICENSE file, png.h, and the man page.
55195519
Restored "& 0xff" in png_save_uint_16() and png_save_uint_32() that
5520-
were accidentally removed from libpng-1.6.17.
5520+
were accidentally removed from libpng-1.6.17.
55215521
Changed PNG_INFO_cHNK and PNG_FREE_cHNK from 0xnnnn to 0xnnnnU in png.h
55225522
(Robert C. Seacord).
55235523
Removed dubious "#if INT_MAX" test from png.h that was added to
@@ -5927,7 +5927,7 @@ Version 1.6.32beta03 [August 2, 2017]
59275927
(Bug report from the OSS-fuzz project).
59285928

59295929
Version 1.6.32beta04 [August 2, 2017]
5930-
Replaced local eXIf_buf with info_ptr-eXIf_buf in png_handle_eXIf().
5930+
Replaced local eXIf_buf with info_ptr->eXIf_buf in png_handle_eXIf().
59315931
Update libpng.3 and libpng-manual.txt about eXIf functions.
59325932

59335933
Version 1.6.32beta05 [August 2, 2017]
@@ -5950,7 +5950,7 @@ Version 1.6.32beta09 [August 3, 2017]
59505950
Require cmake-2.8.8 in CMakeLists.txt. Revised symlink creation,
59515951
no longer using deprecated cmake LOCATION feature (Clifford Yapp).
59525952
Fixed five-byte error in the calculation of IDAT maximum possible size.
5953-
5953+
59545954
Version 1.6.32beta10 [August 5, 2017]
59555955
Moved chunk-length check into a png_check_chunk_length() private
59565956
function (Suggested by Max Stepin).
@@ -6121,6 +6121,189 @@ Version 1.6.39 [November 20, 2022]
61216121
removed the obsolete makefile.cegcc.
61226122
Cleaned up the code and updated the internal documentation.
61236123

6124+
Version 1.6.40 [June 21, 2023]
6125+
Fixed the eXIf chunk multiplicity checks.
6126+
Fixed a memory leak in pCAL processing.
6127+
Corrected the validity report about tRNS inside png_get_valid().
6128+
Fixed various build issues on *BSD, Mac and Windows.
6129+
Updated the configurations and the scripts for continuous integration.
6130+
Cleaned up the code, the build scripts, and the documentation.
6131+
6132+
Version 1.6.41 [January 24, 2024]
6133+
Added SIMD-optimized code for the LoongArch LSX hardware.
6134+
(Contributed by GuXiWei, JinBo and ZhangLixia)
6135+
Fixed the run-time discovery of MIPS MSA hardware.
6136+
(Contributed by Sui Jingfeng)
6137+
Fixed an off-by-one error in the function png_do_check_palette_indexes(),
6138+
which failed to recognize errors that might have existed in the first
6139+
column of a broken palette-encoded image. This was a benign regression
6140+
accidentally introduced in libpng-1.6.33. No pixel was harmed.
6141+
(Contributed by Adam Richter; reviewed by John Bowler)
6142+
Fixed, improved and modernized the contrib/pngminus programs, i.e.,
6143+
png2pnm.c and pnm2png.c
6144+
Removed old and peculiar portability hacks that were meant to silence
6145+
warnings issued by gcc version 7.1 alone.
6146+
(Contributed by John Bowler)
6147+
Fixed and modernized the CMake file, and raised the minimum required
6148+
CMake version from 3.1 to 3.6.
6149+
(Contributed by Clinton Ingram, Timothy Lyanguzov, Tyler Kropp, et al.)
6150+
Allowed the configure script to disable the building of auxiliary tools
6151+
and tests, thus catching up with the CMake file.
6152+
(Contributed by Carlo Bramini)
6153+
Fixed a build issue on Mac.
6154+
(Contributed by Zixu Wang)
6155+
Moved the Autoconf macro files to scripts/autoconf.
6156+
Moved the CMake files (except for the main CMakeLists.txt) to
6157+
scripts/cmake and moved the list of their contributing authors to
6158+
scripts/cmake/AUTHORS.md
6159+
Updated the CI configurations and scripts.
6160+
Relicensed the CI scripts to the MIT License.
6161+
Improved the test coverage.
6162+
(Contributed by John Bowler)
6163+
6164+
Version 1.6.42 [January 29, 2024]
6165+
Fixed the implementation of the macro function png_check_sig().
6166+
This was an API regression, introduced in libpng-1.6.41.
6167+
(Reported by Matthieu Darbois)
6168+
Fixed and updated the libpng manual.
6169+
6170+
Version 1.6.43 [February 23, 2024]
6171+
Fixed the row width check in png_check_IHDR().
6172+
This corrected a bug that was specific to the 16-bit platforms,
6173+
and removed a spurious compiler warning from the 64-bit builds.
6174+
(Reported by Jacek Caban; fixed by John Bowler)
6175+
Added eXIf chunk support to the push-mode reader in pngpread.c.
6176+
(Contributed by Chris Blume)
6177+
Added contrib/pngexif for the benefit of the users who would like
6178+
to inspect the content of eXIf chunks.
6179+
Added contrib/conftest/basic.dfa, a basic build-time configuration.
6180+
(Contributed by John Bowler)
6181+
Fixed a preprocessor condition in pngread.c that broke build-time
6182+
configurations like contrib/conftest/pngcp.dfa.
6183+
(Contributed by John Bowler)
6184+
Added CMake build support for LoongArch LSX.
6185+
(Contributed by GuXiWei)
6186+
Fixed a CMake build error that occurred under a peculiar state of the
6187+
dependency tree. This was a regression introduced in libpng-1.6.41.
6188+
(Contributed by Dan Rosser)
6189+
Marked the installed libpng headers as system headers in CMake.
6190+
(Contributed by Benjamin Buch)
6191+
Updated the build support for RISCOS.
6192+
(Contributed by Cameron Cawley)
6193+
Updated the makefiles to allow cross-platform builds to initialize
6194+
conventional make variables like AR and ARFLAGS.
6195+
Added various improvements to the CI scripts in areas like version
6196+
consistency verification and text linting.
6197+
Added version consistency verification to pngtest.c also.
6198+
6199+
Version 1.6.44 [September 12, 2024]
6200+
Hardened calculations in chroma handling to prevent overflows, and
6201+
relaxed a constraint in cHRM validation to accomodate the standard
6202+
ACES AP1 set of color primaries.
6203+
(Contributed by John Bowler)
6204+
Removed the ASM implementation of ARM Neon optimizations and updated
6205+
the build accordingly. Only the remaining C implementation shall be
6206+
used from now on, thus ensuring the support of the PAC/BTI security
6207+
features on ARM64.
6208+
(Contributed by Ross Burton and John Bowler)
6209+
Fixed the pickup of the PNG_HARDWARE_OPTIMIZATIONS option in the
6210+
CMake build on FreeBSD/amd64. This is an important performance fix
6211+
on this platform.
6212+
Applied various fixes and improvements to the CMake build.
6213+
(Contributed by Eric Riff, Benjamin Buch and Erik Scholz)
6214+
Added fuzzing targets for the simplified read API.
6215+
(Contributed by Mikhail Khachayants)
6216+
Fixed a build error involving pngtest.c under a custom config.
6217+
This was a regression introduced in a code cleanup in libpng-1.6.43.
6218+
(Contributed by Ben Wagner)
6219+
Fixed and improved the config files for AppVeyor CI and Travis CI.
6220+
6221+
Version 1.6.45 [January 7, 2025]
6222+
Added support for the cICP chunk.
6223+
(Contributed by Lucas Chollet and John Bowler)
6224+
Adjusted and improved various checks in colorspace calculations.
6225+
(Contributed by John Bowler)
6226+
Rearranged the write order of colorspace chunks for better conformance
6227+
with the PNG v3 draft specification.
6228+
(Contributed by John Bowler)
6229+
Raised the minimum required CMake version from 3.6 to 3.14.
6230+
Forked off a development branch for libpng version 1.8.
6231+
6232+
Version 1.6.46 [January 23, 2025]
6233+
Added support for the mDCV and cLLI chunks.
6234+
(Contributed by John Bowler)
6235+
Fixed a build issue affecting C89 compilers.
6236+
This was a regression introduced in libpng-1.6.45.
6237+
(Contributed by John Bowler)
6238+
Added makefile.c89, specifically for testing C89 compilers.
6239+
Cleaned up contrib/pngminus: corrected an old typo, removed an old
6240+
workaround, and updated the CMake file.
6241+
6242+
Version 1.6.47 [February 18, 2025]
6243+
Modified the behaviour of colorspace chunks in order to adhere
6244+
to the new precedence rules formulated in the latest draft of
6245+
the PNG Specification.
6246+
(Contributed by John Bowler)
6247+
Fixed a latent bug in `png_write_iCCP`.
6248+
This would have been a read-beyond-end-of-malloc vulnerability,
6249+
introduced early in the libpng-1.6.0 development, yet (fortunately!)
6250+
it was inaccessible before the above-mentioned modification of the
6251+
colorspace precedence rules, due to pre-existing colorspace checks.
6252+
(Reported by Bob Friesenhahn; fixed by John Bowler)
6253+
6254+
Version 1.6.48 [April 30, 2025]
6255+
Fixed the floating-point version of the mDCv setter `png_set_mDCv`.
6256+
(Reported by Mohit Bakshi; fixed by John Bowler)
6257+
Added #error directives to discourage the inclusion of private
6258+
libpng implementation header files in PNG-supporting applications.
6259+
Added the CMake build option `PNG_LIBCONF_HEADER`, to be used as an
6260+
alternative to `DFA_XTRA`.
6261+
Removed the Travis CI configuration files, with heartfelt thanks for
6262+
their generous support of our project over the past five years!
6263+
6264+
Version 1.6.49 [June 12, 2025]
6265+
Added SIMD-optimized code for the RISC-V Vector Extension (RVV).
6266+
(Contributed by Manfred Schlaegl, Dragos Tiselice and Filip Wasil)
6267+
Added various fixes and improvements to the build scripts and to
6268+
the sample code.
6269+
6270+
Version 1.6.50 [July 1, 2025]
6271+
Improved the detection of the RVV Extension on the RISC-V platform.
6272+
(Contributed by Filip Wasil)
6273+
Replaced inline ASM with C intrinsics in the RVV code.
6274+
(Contributed by Filip Wasil)
6275+
Fixed a decoder defect in which unknown chunks trailing IDAT, set
6276+
to go through the unknown chunk handler, incorrectly triggered
6277+
out-of-place IEND errors.
6278+
(Contributed by John Bowler)
6279+
Fixed the CMake file for cross-platform builds that require `libm`.
6280+
6281+
Version 1.6.51 [November 21, 2025]
6282+
Fixed CVE-2025-64505 (moderate severity):
6283+
Heap buffer overflow in `png_do_quantize` via malformed palette index.
6284+
(Reported by Samsung; analyzed by Fabio Gritti.)
6285+
Fixed CVE-2025-64506 (moderate severity):
6286+
Heap buffer over-read in `png_write_image_8bit` with 8-bit input and
6287+
`convert_to_8bit` enabled.
6288+
(Reported by Samsung and <weijinjinnihao@users.noreply.github.com>;
6289+
analyzed by Fabio Gritti.)
6290+
Fixed CVE-2025-64720 (high severity):
6291+
Buffer overflow in `png_image_read_composite` via incorrect palette
6292+
premultiplication.
6293+
(Reported by Samsung; analyzed by John Bowler.)
6294+
Fixed CVE-2025-65018 (high severity):
6295+
Heap buffer overflow in `png_combine_row` triggered via
6296+
`png_image_finish_read`.
6297+
(Reported by <yosiimich@users.noreply.github.com>.)
6298+
Fixed a memory leak in `png_set_quantize`.
6299+
(Reported by Samsung; analyzed by Fabio Gritti.)
6300+
Removed the experimental and incomplete ERROR_NUMBERS code.
6301+
(Contributed by Tobias Stoeckmann.)
6302+
Improved the RISC-V vector extension support; required RVV 1.0 or newer.
6303+
(Contributed by Filip Wasil.)
6304+
Added GitHub Actions workflows for automated testing.
6305+
Performed various refactorings and cleanups.
6306+
61246307
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
61256308
Subscription is required; visit
61266309
https://lists.sourceforge.net/lists/listinfo/png-mng-implement

0 commit comments

Comments
 (0)