mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
Don't report a valid tRNS chunk if it was canceled
Add special handling of the PNG_INFO_tRNS flag to png_get_valid() to not report a canceled tRNS chunk as valid. Fix https://github.com/glennrp/libpng/issues/482 Signed-off-by: Cosmin Truta <ctruta@gmail.com>
This commit is contained in:
parent
f7abe3c419
commit
8be5c147d5
1
AUTHORS
1
AUTHORS
@ -41,6 +41,7 @@ Authors, for copyright and licensing purposes.
|
||||
- Matt Sarett
|
||||
- Mike Klein
|
||||
- Sami Boukortt
|
||||
- Wan-Teh Chang
|
||||
|
||||
The build projects, the build scripts, the test scripts, and other
|
||||
files in the "ci", "projects", "scripts" and "tests" directories, have
|
||||
|
13
pngget.c
13
pngget.c
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngget.c - retrieval of values from info struct
|
||||
*
|
||||
* Copyright (c) 2018 Cosmin Truta
|
||||
* Copyright (c) 2018-2023 Cosmin Truta
|
||||
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1996-1997 Andreas Dilger
|
||||
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
|
||||
@ -21,7 +21,18 @@ png_get_valid(png_const_structrp png_ptr, png_const_inforp info_ptr,
|
||||
png_uint_32 flag)
|
||||
{
|
||||
if (png_ptr != NULL && info_ptr != NULL)
|
||||
{
|
||||
#ifdef PNG_READ_tRNS_SUPPORTED
|
||||
/* png_handle_PLTE() may have canceled a valid tRNS chunk but left the
|
||||
* 'valid' flag for the detection of duplicate chunks. Do not report a
|
||||
* valid tRNS chunk in this case.
|
||||
*/
|
||||
if (flag == PNG_INFO_tRNS && png_ptr->num_trans == 0)
|
||||
return(0);
|
||||
#endif
|
||||
|
||||
return(info_ptr->valid & flag);
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user