summaryrefslogtreecommitdiff
path: root/pngpread.c
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2016-09-11 22:02:05 -0500
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2016-09-11 22:02:05 -0500
commit1842d7c86574e5ac6494423a5e3205c3fedd74b4 (patch)
tree568bdc25b6b5d05b325aed1a65a64eb28272adb3 /pngpread.c
parentbc2bb96cd76c1c54a9de54de3b0ce5c832bd67e3 (diff)
downloadlibpng-1842d7c86574e5ac6494423a5e3205c3fedd74b4.tar.gz
[libpng16] Issue a png_benign_error instead of a png_error on ADLER32 mismatch
while decoding compressed data chunks.
Diffstat (limited to 'pngpread.c')
-rw-r--r--pngpread.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/pngpread.c b/pngpread.c
index 794352f42..c3637b5f0 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -684,7 +684,12 @@ png_process_IDAT_data(png_structrp png_ptr, png_bytep buffer,
png_warning(png_ptr, "Truncated compressed data in IDAT");
else
- png_error(png_ptr, "Decompression error in IDAT");
+ {
+ if (ret == Z_DATA_ERROR)
+ png_benign_error(png_ptr, "ADLER32 checksum mismatch in IDAT");
+ else
+ png_error(png_ptr, "Decompression error in IDAT");
+ }
/* Skip the check on unprocessed input */
return;