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;