[libpng16] Fixed incorrect warning of excess deflate data. End condition - the

warning would be produced if the end of the deflate stream wasn't read
in the last row.  The warning is harmless.
This commit is contained in:
John Bowler 2013-04-07 21:37:52 -05:00 committed by Glenn Randers-Pehrson
parent 7a498039c5
commit 5a1ce92c0c
3 changed files with 18 additions and 9 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.7.0beta07 - April 1, 2013
Libpng 1.7.0beta07 - April 8, 2013
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.
@ -236,8 +236,11 @@ Version 1.7.0beta06 [March 13, 2013]
technically valid, although a reasonable treatment of division would
show it to be incorrect.
Version 1.7.0beta07 [April 1, 2013]
Version 1.7.0beta07 [April 8, 2013]
Updated documentation of 1.5.x to 1.6.x changes in iCCP chunk handling.
Fixed incorrect warning of excess deflate data. End condition - the
warning would be produced if the end of the deflate stream wasn't read
in the last row. The warning is harmless.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@ -4523,8 +4523,11 @@ Version 1.7.0beta06 [March 13, 2013]
technically valid, although a reasonable treatment of division would
show it to be incorrect.
Version 1.7.0beta07 [April 1, 2013]
Version 1.7.0beta07 [April 8, 2013]
Updated documentation of 1.5.x to 1.6.x changes in iCCP chunk handling.
Fixed incorrect warning of excess deflate data. End condition - the
warning would be produced if the end of the deflate stream wasn't read
in the last row. The warning is harmless.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@ -3962,7 +3962,7 @@ png_read_IDAT_data(png_structrp png_ptr, png_bytep output,
png_ptr->zstream.avail_out = out;
}
else /* check for end */
else /* after last row, checking for end */
{
png_ptr->zstream.next_out = tmpbuf;
png_ptr->zstream.avail_out = (sizeof tmpbuf);
@ -3977,10 +3977,13 @@ png_read_IDAT_data(png_structrp png_ptr, png_bytep output,
*/
ret = inflate(&png_ptr->zstream, Z_NO_FLUSH);
/* Take the unconsumed output back (so, in the 'check' case this just
* counts up).
*/
avail_out += png_ptr->zstream.avail_out;
/* Take the unconsumed output back. */
if (output != NULL)
avail_out += png_ptr->zstream.avail_out;
else /* avail_out counts the extra bytes */
avail_out += (sizeof tmpbuf) - png_ptr->zstream.avail_out;
png_ptr->zstream.avail_out = 0;
if (ret == Z_STREAM_END)
@ -4019,7 +4022,7 @@ png_read_IDAT_data(png_structrp png_ptr, png_bytep output,
if (output != NULL)
png_error(png_ptr, "Not enough image data");
else /* checking */
else /* the deflate stream contained extra data */
png_chunk_benign_error(png_ptr, "Too much image data");
}
}