Skip to content
Snippets Groups Projects
Commit a81cad8f authored by Martin Storsjö's avatar Martin Storsjö
Browse files

pngdec: Stop trying to decode once inflate returns Z_STREAM_END


If the input buffer contains more data after the deflate stream,
the loop previously left running infinitely, with inflate returning
Z_STREAM_END.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: default avatarMartin Storsjö <martin@martin.st>
parent c2319876
No related branches found
No related tags found
No related merge requests found
...@@ -378,6 +378,10 @@ static int png_decode_idat(PNGDecContext *s, int length) ...@@ -378,6 +378,10 @@ static int png_decode_idat(PNGDecContext *s, int length)
s->zstream.avail_out = s->crow_size; s->zstream.avail_out = s->crow_size;
s->zstream.next_out = s->crow_buf; s->zstream.next_out = s->crow_buf;
} }
if (ret == Z_STREAM_END && s->zstream.avail_in > 0) {
av_log(NULL, AV_LOG_WARNING, "%d undecompressed bytes left in buffer\n", s->zstream.avail_in);
return 0;
}
} }
return 0; return 0;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment