Update bundled libpng to version 1.6.42

[ChangeLog][Third-Party Code] libpng was updated to version 1.6.42

Change-Id: Ie41c2df610fcd456af2bc4dee05dde90c426602b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit a046bc19e451f6f2e42ac1fcddaf5ef3efc81f0d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit cd59980f726b5254bd56197acc6f0cbe6d5f1f46)
(cherry picked from commit 85ac5cb9796f40cd01cf585978a7ad54cc75f23d)
This commit is contained in:
Eirik Aavitsland 2024-02-05 11:14:55 +01:00 committed by Qt Cherry-pick Bot
parent f9537eda1d
commit 303586dd18
10 changed files with 105 additions and 99 deletions

View File

@ -1,4 +1,4 @@
libpng 1.6.41 - January 24, 2024 libpng 1.6.42 - January 29, 2024
================================ ================================
This is a public release of libpng, intended for use in production code. This is a public release of libpng, intended for use in production code.
@ -9,13 +9,13 @@ Files available for download
Source files with LF line endings (for Unix/Linux): Source files with LF line endings (for Unix/Linux):
* libpng-1.6.41.tar.xz (LZMA-compressed, recommended) * libpng-1.6.42.tar.xz (LZMA-compressed, recommended)
* libpng-1.6.41.tar.gz (deflate-compressed) * libpng-1.6.42.tar.gz (deflate-compressed)
Source files with CRLF line endings (for Windows): Source files with CRLF line endings (for Windows):
* lpng1641.7z (LZMA-compressed, recommended) * lpng1642.7z (LZMA-compressed, recommended)
* lpng1641.zip (deflate-compressed) * lpng1642.zip (deflate-compressed)
Other information: Other information:
@ -25,6 +25,14 @@ Other information:
* TRADEMARK.md * TRADEMARK.md
Changes from version 1.6.41 to version 1.6.42
---------------------------------------------
* Fixed the implementation of the macro function `png_check_sig`.
This was an API regression, introduced in libpng-1.6.41.
(Reported by Matthieu Darbois)
Changes from version 1.6.40 to version 1.6.41 Changes from version 1.6.40 to version 1.6.41
--------------------------------------------- ---------------------------------------------

View File

@ -6134,7 +6134,7 @@ Version 1.6.41 [January 24, 2024]
(Contributed by GuXiWei, JinBo and ZhangLixia) (Contributed by GuXiWei, JinBo and ZhangLixia)
Fixed the run-time discovery of MIPS MSA hardware. Fixed the run-time discovery of MIPS MSA hardware.
(Contributed by Sui Jingfeng) (Contributed by Sui Jingfeng)
Fixed an off-by-one error in the function `png_do_check_palette_indexes`, Fixed an off-by-one error in the function png_do_check_palette_indexes(),
which failed to recognize errors that might have existed in the first which failed to recognize errors that might have existed in the first
column of a broken palette-encoded image. This was a benign regression column of a broken palette-encoded image. This was a benign regression
accidentally introduced in libpng-1.6.33. No pixel was harmed. accidentally introduced in libpng-1.6.33. No pixel was harmed.
@ -6161,6 +6161,11 @@ Version 1.6.41 [January 24, 2024]
Improved the test coverage. Improved the test coverage.
(Contributed by John Bowler) (Contributed by John Bowler)
Version 1.6.42 [January 29, 2024]
Fixed the implementation of the macro function png_check_sig().
This was an API regression, introduced in libpng-1.6.41.
(Reported by Matthieu Darbois)
Send comments/corrections/commendations to png-mng-implement at lists.sf.net. Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
Subscription is required; visit Subscription is required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement https://lists.sourceforge.net/lists/listinfo/png-mng-implement

View File

@ -1,4 +1,4 @@
README for libpng version 1.6.41 README for libpng version 1.6.42
================================ ================================
See the note about version numbers near the top of `png.h`. See the note about version numbers near the top of `png.h`.

View File

@ -9,7 +9,7 @@ libpng-manual.txt - A description on how to use and modify libpng
Based on: Based on:
libpng version 1.6.36, December 2018, through 1.6.41 - January 2024 libpng version 1.6.36, December 2018, through 1.6.42 - January 2024
Updated and distributed by Cosmin Truta Updated and distributed by Cosmin Truta
Copyright (c) 2018-2024 Cosmin Truta Copyright (c) 2018-2024 Cosmin Truta
@ -357,7 +357,7 @@ Customizing libpng.
return ERROR; return ERROR;
} }
is_png = !png_sig_cmp(header, 0, number); is_png = (png_sig_cmp(header, 0, number) == 0);
if (!is_png) if (!is_png)
{ {
return NOT_PNG; return NOT_PNG;
@ -385,8 +385,7 @@ create the structure, so your application should check for that.
if (!info_ptr) if (!info_ptr)
{ {
png_destroy_read_struct(&png_ptr, png_destroy_read_struct(&png_ptr, NULL, NULL);
(png_infopp)NULL, (png_infopp)NULL);
return ERROR; return ERROR;
} }
@ -419,14 +418,13 @@ free any memory.
if (setjmp(png_jmpbuf(png_ptr))) if (setjmp(png_jmpbuf(png_ptr)))
{ {
png_destroy_read_struct(&png_ptr, &info_ptr, png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
&end_info);
fclose(fp); fclose(fp);
return ERROR; return ERROR;
} }
Pass (png_infopp)NULL instead of &end_info if you didn't create Pass NULL instead of &end_info if you didn't create an end_info
an end_info structure. structure.
If you would rather avoid the complexity of setjmp/longjmp issues, If you would rather avoid the complexity of setjmp/longjmp issues,
you can compile libpng with PNG_NO_SETJMP, in which case you can compile libpng with PNG_NO_SETJMP, in which case
@ -496,7 +494,7 @@ You can set up a callback function to handle any unknown chunks in the
input stream. You must supply the function input stream. You must supply the function
read_chunk_callback(png_structp png_ptr, read_chunk_callback(png_structp png_ptr,
png_unknown_chunkp chunk); png_unknown_chunkp chunk)
{ {
/* The unknown chunk structure contains your /* The unknown chunk structure contains your
chunk data, along with similar data for any other chunk data, along with similar data for any other
@ -547,9 +545,9 @@ a progress meter or the like. It's demonstrated in pngtest.c.
You must supply a function You must supply a function
void read_row_callback(png_structp png_ptr, void read_row_callback(png_structp png_ptr,
png_uint_32 row, int pass); png_uint_32 row, int pass)
{ {
/* put your code here */ /* put your code here */
} }
(You can give it another name that you like instead of "read_row_callback") (You can give it another name that you like instead of "read_row_callback")
@ -1181,21 +1179,21 @@ If you know your image size and pixel size ahead of time, you can allocate
row_pointers prior to calling png_read_png() with row_pointers prior to calling png_read_png() with
if (height > PNG_UINT_32_MAX/(sizeof (png_byte))) if (height > PNG_UINT_32_MAX/(sizeof (png_byte)))
png_error (png_ptr, png_error(png_ptr,
"Image is too tall to process in memory"); "Image is too tall to process in memory");
if (width > PNG_UINT_32_MAX/pixel_size) if (width > PNG_UINT_32_MAX/pixel_size)
png_error (png_ptr, png_error(png_ptr,
"Image is too wide to process in memory"); "Image is too wide to process in memory");
row_pointers = png_malloc(png_ptr, row_pointers = png_malloc(png_ptr,
height*(sizeof (png_bytep))); height*(sizeof (png_bytep)));
for (int i=0; i<height, i++) for (int i = 0; i < height, i++)
row_pointers[i]=NULL; /* security precaution */ row_pointers[i] = NULL; /* security precaution */
for (int i=0; i<height, i++) for (int i = 0; i < height, i++)
row_pointers[i]=png_malloc(png_ptr, row_pointers[i] = png_malloc(png_ptr,
width*pixel_size); width*pixel_size);
png_set_rows(png_ptr, info_ptr, &row_pointers); png_set_rows(png_ptr, info_ptr, &row_pointers);
@ -1205,14 +1203,14 @@ row_pointers[i] to point into the proper places in your block, but first
be sure that your platform is able to allocate such a large buffer: be sure that your platform is able to allocate such a large buffer:
/* Guard against integer overflow */ /* Guard against integer overflow */
if (height > PNG_SIZE_MAX/(width*pixel_size)) { if (height > PNG_SIZE_MAX/(width*pixel_size))
png_error(png_ptr,"image_data buffer would be too large"); png_error(png_ptr, "image_data buffer would be too large");
}
png_bytep buffer=png_malloc(png_ptr,height*width*pixel_size); png_bytep buffer = png_malloc(png_ptr,
height*width*pixel_size);
for (int i=0; i<height, i++) for (int i = 0; i < height, i++)
row_pointers[i]=buffer+i*width*pixel_size; row_pointers[i] = buffer + i*width*pixel_size;
png_set_rows(png_ptr, info_ptr, &row_pointers); png_set_rows(png_ptr, info_ptr, &row_pointers);
@ -1465,25 +1463,24 @@ png_set_rgb_to_gray()).
non-paletted images (PNG_INFO_tRNS) non-paletted images (PNG_INFO_tRNS)
png_get_eXIf_1(png_ptr, info_ptr, &num_exif, &exif); png_get_eXIf_1(png_ptr, info_ptr, &num_exif, &exif);
(PNG_INFO_eXIf)
exif - Exif profile (array of png_byte) exif - Exif profile (array of png_byte)
(PNG_INFO_eXIf)
png_get_hIST(png_ptr, info_ptr, &hist); png_get_hIST(png_ptr, info_ptr, &hist);
(PNG_INFO_hIST)
hist - histogram of palette (array of hist - histogram of palette (array of
png_uint_16) png_uint_16) (PNG_INFO_hIST)
png_get_tIME(png_ptr, info_ptr, &mod_time); png_get_tIME(png_ptr, info_ptr, &mod_time);
mod_time - time image was last modified mod_time - time image was last modified
(PNG_VALID_tIME) (PNG_INFO_tIME)
png_get_bKGD(png_ptr, info_ptr, &background); png_get_bKGD(png_ptr, info_ptr, &background);
background - background color (of type background - background color (of type
png_color_16p) (PNG_VALID_bKGD) png_color_16p) (PNG_INFO_bKGD)
valid 16-bit red, green and blue valid 16-bit red, green and blue
values, regardless of color_type values, regardless of color_type
@ -1743,13 +1740,13 @@ grayscale images with bit depths of 2 or 4 or if there is a multiple-image
viewing application that wishes to treat all images in the same way. viewing application that wishes to treat all images in the same way.
if (color_type == PNG_COLOR_TYPE_PALETTE) if (color_type == PNG_COLOR_TYPE_PALETTE)
png_set_palette_to_rgb(png_ptr); png_set_palette_to_rgb(png_ptr);
if (png_get_valid(png_ptr, info_ptr, if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr); png_set_tRNS_to_alpha(png_ptr);
if (color_type == PNG_COLOR_TYPE_GRAY && if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr); png_set_expand_gray_1_2_4_to_8(png_ptr);
The first two functions are actually aliases for png_set_expand(), added The first two functions are actually aliases for png_set_expand(), added
in libpng version 1.0.4, with the function names expanded to improve code in libpng version 1.0.4, with the function names expanded to improve code
@ -1764,18 +1761,20 @@ png_set_expand(); however, the resultant channels have 16 bits rather than 8.
Use this when the output color or gray channels are made linear to avoid fairly Use this when the output color or gray channels are made linear to avoid fairly
severe accuracy loss. severe accuracy loss.
if (bit_depth < 16) if (bit_depth < 16)
png_set_expand_16(png_ptr); png_set_expand_16(png_ptr);
PNG can have files with 16 bits per channel. If you only can handle PNG can have files with 16 bits per channel. If you only can handle
8 bits per channel, this will strip the pixels down to 8-bit. 8 bits per channel, this will strip the pixels down to 8-bit.
if (bit_depth == 16) if (bit_depth == 16)
{
#if PNG_LIBPNG_VER >= 10504 #if PNG_LIBPNG_VER >= 10504
png_set_scale_16(png_ptr); png_set_scale_16(png_ptr);
#else #else
png_set_strip_16(png_ptr); png_set_strip_16(png_ptr);
#endif #endif
}
(The more accurate "png_set_scale_16()" API became available in libpng version (The more accurate "png_set_scale_16()" API became available in libpng version
1.5.4). 1.5.4).
@ -1901,7 +1900,7 @@ Note that png_set_filler() does not change the color type. If you want
to do that, you can add a true alpha channel with to do that, you can add a true alpha channel with
if (color_type == PNG_COLOR_TYPE_RGB || if (color_type == PNG_COLOR_TYPE_RGB ||
color_type == PNG_COLOR_TYPE_GRAY) color_type == PNG_COLOR_TYPE_GRAY)
png_set_add_alpha(png_ptr, filler, PNG_FILLER_AFTER); png_set_add_alpha(png_ptr, filler, PNG_FILLER_AFTER);
where "filler" contains the alpha value to assign to each pixel. where "filler" contains the alpha value to assign to each pixel.
@ -1926,7 +1925,7 @@ with alpha.
if (color_type == PNG_COLOR_TYPE_RGB || if (color_type == PNG_COLOR_TYPE_RGB ||
color_type == PNG_COLOR_TYPE_RGB_ALPHA) color_type == PNG_COLOR_TYPE_RGB_ALPHA)
png_set_rgb_to_gray(png_ptr, error_action, png_set_rgb_to_gray(png_ptr, error_action,
double red_weight, double green_weight); (double)red_weight, (double)green_weight);
error_action = 1: silently do the conversion error_action = 1: silently do the conversion
@ -1949,8 +1948,8 @@ In the corresponding fixed point API the red_weight and green_weight values are
simply scaled by 100,000: simply scaled by 100,000:
png_set_rgb_to_gray(png_ptr, error_action, png_set_rgb_to_gray(png_ptr, error_action,
png_fixed_point red_weight, (png_fixed_point)red_weight,
png_fixed_point green_weight); (png_fixed_point)green_weight);
If you have set error_action = 1 or 2, you can If you have set error_action = 1 or 2, you can
later check whether the image really was gray, after processing later check whether the image really was gray, after processing
@ -2186,9 +2185,8 @@ do your own check for number_of_rows*width*pixel_size if you are using
a multiple-row buffer: a multiple-row buffer:
/* Guard against integer overflow */ /* Guard against integer overflow */
if (number_of_rows > PNG_SIZE_MAX/(width*pixel_size)) { if (number_of_rows > PNG_SIZE_MAX/(width*pixel_size))
png_error(png_ptr,"image_data buffer would be too large"); png_error(png_ptr, "image_data buffer would be too large");
}
Remember: Before you call png_read_update_info(), the png_get_*() Remember: Before you call png_read_update_info(), the png_get_*()
functions return the values corresponding to the original PNG image. functions return the values corresponding to the original PNG image.
@ -2408,12 +2406,11 @@ separate.
if (!end_info) if (!end_info)
{ {
png_destroy_read_struct(&png_ptr, &info_ptr, png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
(png_infopp)NULL);
return ERROR; return ERROR;
} }
png_read_end(png_ptr, end_info); png_read_end(png_ptr, end_info);
If you are not interested, you should still call png_read_end() If you are not interested, you should still call png_read_end()
but you can pass NULL, avoiding the need to create an end_info structure. but you can pass NULL, avoiding the need to create an end_info structure.
@ -2421,7 +2418,7 @@ If you do this, libpng will not process any chunks after IDAT other than
skipping over them and perhaps (depending on whether you have called skipping over them and perhaps (depending on whether you have called
png_set_crc_action) checking their CRCs while looking for the IEND chunk. png_set_crc_action) checking their CRCs while looking for the IEND chunk.
png_read_end(png_ptr, (png_infop)NULL); png_read_end(png_ptr, NULL);
If you don't call png_read_end(), then your file pointer will be If you don't call png_read_end(), then your file pointer will be
left pointing to the first chunk after the last IDAT, which is probably left pointing to the first chunk after the last IDAT, which is probably
@ -2430,13 +2427,11 @@ the PNG datastream.
When you are done, you can free all memory allocated by libpng like this: When you are done, you can free all memory allocated by libpng like this:
png_destroy_read_struct(&png_ptr, &info_ptr, png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
&end_info);
or, if you didn't create an end_info structure, or, if you didn't create an end_info structure,
png_destroy_read_struct(&png_ptr, &info_ptr, png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
(png_infopp)NULL);
It is also possible to individually free the info_ptr members that It is also possible to individually free the info_ptr members that
point to libpng-allocated storage with the following function: point to libpng-allocated storage with the following function:
@ -2556,15 +2551,13 @@ png_infop info_ptr;
if (!info_ptr) if (!info_ptr)
{ {
png_destroy_read_struct(&png_ptr, png_destroy_read_struct(&png_ptr, NULL, NULL);
(png_infopp)NULL, (png_infopp)NULL);
return ERROR; return ERROR;
} }
if (setjmp(png_jmpbuf(png_ptr))) if (setjmp(png_jmpbuf(png_ptr)))
{ {
png_destroy_read_struct(&png_ptr, &info_ptr, png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
(png_infopp)NULL);
return ERROR; return ERROR;
} }
@ -2597,8 +2590,7 @@ png_infop info_ptr;
{ {
if (setjmp(png_jmpbuf(png_ptr))) if (setjmp(png_jmpbuf(png_ptr)))
{ {
png_destroy_read_struct(&png_ptr, &info_ptr, png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
(png_infopp)NULL);
return ERROR; return ERROR;
} }
@ -2763,8 +2755,7 @@ both "png_ptr"; you can call them anything you like, such as
png_infop info_ptr = png_create_info_struct(png_ptr); png_infop info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr) if (!info_ptr)
{ {
png_destroy_write_struct(&png_ptr, png_destroy_write_struct(&png_ptr, NULL);
(png_infopp)NULL);
return ERROR; return ERROR;
} }
@ -2790,7 +2781,7 @@ section below for more information on the libpng error handling.
if (setjmp(png_jmpbuf(png_ptr))) if (setjmp(png_jmpbuf(png_ptr)))
{ {
png_destroy_write_struct(&png_ptr, &info_ptr); png_destroy_write_struct(&png_ptr, &info_ptr);
fclose(fp); fclose(fp);
return ERROR; return ERROR;
} }
@ -2844,9 +2835,9 @@ a progress meter or the like. It's demonstrated in pngtest.c.
You must supply a function You must supply a function
void write_row_callback(png_structp png_ptr, png_uint_32 row, void write_row_callback(png_structp png_ptr, png_uint_32 row,
int pass); int pass)
{ {
/* put your code here */ /* put your code here */
} }
(You can give it another name that you like instead of "write_row_callback") (You can give it another name that you like instead of "write_row_callback")
@ -3116,8 +3107,8 @@ width, height, bit_depth, and color_type must be the same in each call.
png_set_eXIf_1(png_ptr, info_ptr, num_exif, exif); png_set_eXIf_1(png_ptr, info_ptr, num_exif, exif);
exif - Exif profile (array of exif - Exif profile (array of png_byte)
png_byte) (PNG_INFO_eXIf) (PNG_INFO_eXIf)
png_set_hIST(png_ptr, info_ptr, hist); png_set_hIST(png_ptr, info_ptr, hist);
@ -3127,12 +3118,12 @@ width, height, bit_depth, and color_type must be the same in each call.
png_set_tIME(png_ptr, info_ptr, mod_time); png_set_tIME(png_ptr, info_ptr, mod_time);
mod_time - time image was last modified mod_time - time image was last modified
(PNG_VALID_tIME) (PNG_INFO_tIME)
png_set_bKGD(png_ptr, info_ptr, background); png_set_bKGD(png_ptr, info_ptr, background);
background - background color (of type background - background color (of type
png_color_16p) (PNG_VALID_bKGD) png_color_16p) (PNG_INFO_bKGD)
png_set_text(png_ptr, info_ptr, text_ptr, num_text); png_set_text(png_ptr, info_ptr, text_ptr, num_text);
@ -4218,7 +4209,7 @@ png_create_read_struct_2() or png_create_write_struct_2() to register your
own functions as described above. These functions also provide a void own functions as described above. These functions also provide a void
pointer that can be retrieved via pointer that can be retrieved via
mem_ptr=png_get_mem_ptr(png_ptr); mem_ptr = png_get_mem_ptr(png_ptr);
Your replacement memory functions must have prototypes as follows: Your replacement memory functions must have prototypes as follows:
@ -4515,7 +4506,7 @@ When PNG_DEBUG is defined but is zero, the macros aren't defined, but you
can still use PNG_DEBUG to control your own debugging: can still use PNG_DEBUG to control your own debugging:
#ifdef PNG_DEBUG #ifdef PNG_DEBUG
fprintf(stderr, ... fprintf(stderr, ...);
#endif #endif
When PNG_DEBUG = 1, the macros are defined, but only png_debug statements When PNG_DEBUG = 1, the macros are defined, but only png_debug statements
@ -4692,7 +4683,7 @@ deprecated since libpng-1.0.16 and libpng-1.2.6.
The function The function
png_check_sig(sig, num) png_check_sig(sig, num)
was replaced with was replaced with
!png_sig_cmp(sig, 0, num) png_sig_cmp(sig, 0, num) == 0
It has been deprecated since libpng-0.90. It has been deprecated since libpng-0.90.
The function The function
@ -4756,8 +4747,8 @@ png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(),
png_set_asm_flags(), and png_mmx_supported() png_set_asm_flags(), and png_mmx_supported()
We removed the obsolete png_check_sig(), png_memcpy_check(), and We removed the obsolete png_check_sig(), png_memcpy_check(), and
png_memset_check() functions. Instead use !png_sig_cmp(), memcpy(), png_memset_check() functions. Instead use png_sig_cmp() == 0,
and memset(), respectively. memcpy(), and memset(), respectively.
The function png_set_gray_1_2_4_to_8() was removed. It has been The function png_set_gray_1_2_4_to_8() was removed. It has been
deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
@ -5239,7 +5230,7 @@ changed, and is unaffected by conditional compilation macros. It is the
best choice for use in configure scripts for detecting the presence of any best choice for use in configure scripts for detecting the presence of any
libpng version since 0.88. In an autoconf "configure.in" you could use libpng version since 0.88. In an autoconf "configure.in" you could use
AC_CHECK_LIB(png, png_get_io_ptr, ... AC_CHECK_LIB(png, png_get_io_ptr, ...)
XV. Source code repository XV. Source code repository
@ -5248,12 +5239,12 @@ control. The git repository was built from old libpng-x.y.z.tar.gz files
going back to version 0.70. You can access the git repository (read only) going back to version 0.70. You can access the git repository (read only)
at at
https://github.com/glennrp/libpng or https://github.com/pnggroup/libpng or
https://git.code.sf.net/p/libpng/code.git https://git.code.sf.net/p/libpng/code.git
or you can browse it with a web browser at or you can browse it with a web browser at
https://github.com/glennrp/libpng or https://github.com/pnggroup/libpng or
https://sourceforge.net/p/libpng/code/ci/libpng16/tree/ https://sourceforge.net/p/libpng/code/ci/libpng16/tree/
Patches can be sent to png-mng-implement at lists.sourceforge.net or Patches can be sent to png-mng-implement at lists.sourceforge.net or
@ -5263,7 +5254,7 @@ uploaded to the libpng bug tracker at
or as a "pull request" to or as a "pull request" to
https://github.com/glennrp/libpng/pulls https://github.com/pnggroup/libpng/pulls
We also accept patches built from the tar or zip distributions, and We also accept patches built from the tar or zip distributions, and
simple verbal descriptions of bug fixes, reported either to the simple verbal descriptions of bug fixes, reported either to the

View File

@ -14,7 +14,7 @@
#include "pngpriv.h" #include "pngpriv.h"
/* Generate a compiler error if there is an old png.h in the search path. */ /* Generate a compiler error if there is an old png.h in the search path. */
typedef png_libpng_version_1_6_41 Your_png_h_is_not_version_1_6_41; typedef png_libpng_version_1_6_42 Your_png_h_is_not_version_1_6_42;
/* Tells libpng that we have already handled the first "num_bytes" bytes /* Tells libpng that we have already handled the first "num_bytes" bytes
* of the PNG file signature. If the PNG data is embedded into another * of the PNG file signature. If the PNG data is embedded into another
@ -794,7 +794,7 @@ png_get_copyright(png_const_structrp png_ptr)
return PNG_STRING_COPYRIGHT return PNG_STRING_COPYRIGHT
#else #else
return PNG_STRING_NEWLINE \ return PNG_STRING_NEWLINE \
"libpng version 1.6.41" PNG_STRING_NEWLINE \ "libpng version 1.6.42" PNG_STRING_NEWLINE \
"Copyright (c) 2018-2024 Cosmin Truta" PNG_STRING_NEWLINE \ "Copyright (c) 2018-2024 Cosmin Truta" PNG_STRING_NEWLINE \
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \ "Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
PNG_STRING_NEWLINE \ PNG_STRING_NEWLINE \

View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library /* png.h - header file for PNG reference library
* *
* libpng version 1.6.41 * libpng version 1.6.42
* *
* Copyright (c) 2018-2024 Cosmin Truta * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
@ -15,7 +15,7 @@
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.6.35, July 2018: * libpng versions 0.97, January 1998, through 1.6.35, July 2018:
* Glenn Randers-Pehrson * Glenn Randers-Pehrson
* libpng versions 1.6.36, December 2018, through 1.6.41, January 2024: * libpng versions 1.6.36, December 2018, through 1.6.42, January 2024:
* Cosmin Truta * Cosmin Truta
* See also "Contributing Authors", below. * See also "Contributing Authors", below.
*/ */
@ -239,7 +239,7 @@
* ... * ...
* 1.5.30 15 10530 15.so.15.30[.0] * 1.5.30 15 10530 15.so.15.30[.0]
* ... * ...
* 1.6.41 16 10641 16.so.16.41[.0] * 1.6.42 16 10641 16.so.16.41[.0]
* *
* Henceforth the source version will match the shared-library major and * Henceforth the source version will match the shared-library major and
* minor numbers; the shared-library major version number will be used for * minor numbers; the shared-library major version number will be used for
@ -278,7 +278,7 @@
*/ */
/* Version information for png.h - this should match the version in png.c */ /* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.6.41" #define PNG_LIBPNG_VER_STRING "1.6.42"
#define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n" #define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n"
#define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_SONUM 16
@ -318,7 +318,7 @@
* From version 1.0.1 it is: * From version 1.0.1 it is:
* XXYYZZ, where XX=major, YY=minor, ZZ=release * XXYYZZ, where XX=major, YY=minor, ZZ=release
*/ */
#define PNG_LIBPNG_VER 10641 /* 1.6.41 */ #define PNG_LIBPNG_VER 10641 /* 1.6.42 */
/* Library configuration: these options cannot be changed after /* Library configuration: these options cannot be changed after
* the library has been built. * the library has been built.
@ -428,7 +428,7 @@ extern "C" {
/* This triggers a compiler error in png.c, if png.c and png.h /* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number. * do not agree upon the version number.
*/ */
typedef char* png_libpng_version_1_6_41; typedef char* png_libpng_version_1_6_42;
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
* *
@ -914,9 +914,9 @@ PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, size_t start,
size_t num_to_check)); size_t num_to_check));
/* Simple signature checking function. This is the same as calling /* Simple signature checking function. This is the same as calling
* png_check_sig(sig, n) := (png_sig_cmp(sig, 0, n) != 0). * png_check_sig(sig, n) := (png_sig_cmp(sig, 0, n) == 0).
*/ */
#define png_check_sig(sig, n) (png_sig_cmp((sig), 0, (n)) != 0) #define png_check_sig(sig, n) (png_sig_cmp((sig), 0, (n)) == 0) /* DEPRECATED */
/* Allocate and initialize png_ptr struct for reading, and any other memory. */ /* Allocate and initialize png_ptr struct for reading, and any other memory. */
PNG_EXPORTA(4, png_structp, png_create_read_struct, PNG_EXPORTA(4, png_structp, png_create_read_struct,

View File

@ -1,7 +1,7 @@
/* pngconf.h - machine-configurable file for libpng /* pngconf.h - machine-configurable file for libpng
* *
* libpng version 1.6.41 * libpng version 1.6.42
* *
* Copyright (c) 2018-2024 Cosmin Truta * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson

View File

@ -1,6 +1,6 @@
/* pnglibconf.h - library build configuration */ /* pnglibconf.h - library build configuration */
/* libpng version 1.6.41 */ /* libpng version 1.6.42 */
/* Copyright (c) 2018-2024 Cosmin Truta */ /* Copyright (c) 2018-2024 Cosmin Truta */
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */ /* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */

View File

@ -36,7 +36,7 @@
* still required (as of 2011-05-02.) * still required (as of 2011-05-02.)
*/ */
#ifndef _POSIX_SOURCE #ifndef _POSIX_SOURCE
# define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ # define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */
#endif #endif
#ifndef PNG_VERSION_INFO_ONLY #ifndef PNG_VERSION_INFO_ONLY
@ -190,7 +190,8 @@
#endif /* PNG_ARM_NEON_OPT > 0 */ #endif /* PNG_ARM_NEON_OPT > 0 */
#ifndef PNG_MIPS_MSA_OPT #ifndef PNG_MIPS_MSA_OPT
# if defined(__mips_msa) && (__mips_isa_rev >= 5) && defined(PNG_ALIGNED_MEMORY_SUPPORTED) # if defined(__mips_msa) && (__mips_isa_rev >= 5) && \
defined(PNG_ALIGNED_MEMORY_SUPPORTED)
# define PNG_MIPS_MSA_OPT 2 # define PNG_MIPS_MSA_OPT 2
# else # else
# define PNG_MIPS_MSA_OPT 0 # define PNG_MIPS_MSA_OPT 0
@ -199,7 +200,8 @@
#ifndef PNG_MIPS_MMI_OPT #ifndef PNG_MIPS_MMI_OPT
# ifdef PNG_MIPS_MMI # ifdef PNG_MIPS_MMI
# if defined(__mips_loongson_mmi) && (_MIPS_SIM == _ABI64) && defined(PNG_ALIGNED_MEMORY_SUPPORTED) # if defined(__mips_loongson_mmi) && (_MIPS_SIM == _ABI64) && \
defined(PNG_ALIGNED_MEMORY_SUPPORTED)
# define PNG_MIPS_MMI_OPT 1 # define PNG_MIPS_MMI_OPT 1
# else # else
# define PNG_MIPS_MMI_OPT 0 # define PNG_MIPS_MMI_OPT 0
@ -231,7 +233,7 @@
* enable SSE optimizations. This means that these optimizations will * enable SSE optimizations. This means that these optimizations will
* be off by default. See contrib/intel for more details. * be off by default. See contrib/intel for more details.
*/ */
# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \ # if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \
defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \
(defined(_M_IX86_FP) && _M_IX86_FP >= 2) (defined(_M_IX86_FP) && _M_IX86_FP >= 2)
# define PNG_INTEL_SSE_OPT 1 # define PNG_INTEL_SSE_OPT 1

View File

@ -7,8 +7,8 @@
"Description": "libpng is the official PNG reference library.", "Description": "libpng is the official PNG reference library.",
"Homepage": "http://www.libpng.org/pub/png/libpng.html", "Homepage": "http://www.libpng.org/pub/png/libpng.html",
"Version": "1.6.41", "Version": "1.6.42",
"DownloadLocation": "https://download.sourceforge.net/libpng/libpng-1.6.41.tar.xz", "DownloadLocation": "https://download.sourceforge.net/libpng/libpng-1.6.42.tar.xz",
"License": "libpng License and PNG Reference Library version 2", "License": "libpng License and PNG Reference Library version 2",
"LicenseId": "Libpng AND libpng-2.0", "LicenseId": "Libpng AND libpng-2.0",