summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2017-06-06 18:40:45 -0500
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2017-06-06 18:40:45 -0500
commitc5483289049d062be9ee975833a38b4e8575ee43 (patch)
treed5ed5ebe3923559d29605f6c115309db76137bac
parent11629b1c1a747693d7f6534c6c370c5d7edd7a84 (diff)
[libpng16] Avoid writing an empty IDAT when the last IDAT exactly fills the
compression buffer (bug report by Brian Baird). This bug was introduced in libpng-1.6.0.
-rw-r--r--ANNOUNCE7
-rw-r--r--CHANGES5
-rw-r--r--pngwutil.c6
3 files changed, 13 insertions, 5 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index 63585f716..701cb7029 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-Libpng 1.6.30beta04 - May 24, 2017
+Libpng 1.6.30beta04 - June 6, 2017
This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version.
@@ -45,7 +45,10 @@ Version 1.6.30beta03 [May 22, 2017]
Test CMAKE_HOST_WIN32 instead of WIN32 in CMakeLists.txt.
Fix some URL in documentation.
-Version 1.6.30beta04 [May 24, 2017]
+Version 1.6.30beta04 [June 6, 2017]
+ Avoid writing an empty IDAT when the last IDAT exactly fills the
+ compression buffer (bug report by Brian Baird). This bug was
+ introduced in libpng-1.6.0.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/CHANGES b/CHANGES
index 6fc73ee40..649f00e7f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5840,7 +5840,10 @@ Version 1.6.30beta03 [May 22, 2017]
Test CMAKE_HOST_WIN32 instead of WIN32 in CMakeLists.txt.
Fix some URL in documentation.
-Version 1.6.30beta04 [May 24, 2017]
+Version 1.6.30beta04 [June 6, 2017]
+ Avoid writing an empty IDAT when the last IDAT exactly fills the
+ compression buffer (bug report by Brian Baird). This bug was
+ introduced in libpng-1.6.0.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/pngwutil.c b/pngwutil.c
index 0f98d582d..21cfcf4ec 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1003,7 +1003,8 @@ png_compress_IDAT(png_structrp png_ptr, png_const_bytep input,
optimize_cmf(data, png_image_size(png_ptr));
#endif
- png_write_complete_chunk(png_ptr, png_IDAT, data, size);
+ if (size)
+ png_write_complete_chunk(png_ptr, png_IDAT, data, size);
png_ptr->mode |= PNG_HAVE_IDAT;
png_ptr->zstream.next_out = data;
@@ -1049,7 +1050,8 @@ png_compress_IDAT(png_structrp png_ptr, png_const_bytep input,
optimize_cmf(data, png_image_size(png_ptr));
#endif
- png_write_complete_chunk(png_ptr, png_IDAT, data, size);
+ if (size)
+ png_write_complete_chunk(png_ptr, png_IDAT, data, size);
png_ptr->zstream.avail_out = 0;
png_ptr->zstream.next_out = NULL;
png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT;