mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/webp: fix decoding for trailing junk
some bitstream have trailing junk, despite being valid webp data. In case of apparent error, abort the loop and let *got_frame decide whether this is an error or not. fixes trac #8107 (/#7612) Another possibility would be turning the loop into: while (!*got_frame) {...} Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
3740bdee77
commit
857fd2ad99
@ -1412,8 +1412,11 @@ static int webp_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
||||
return AVERROR_INVALIDDATA;
|
||||
chunk_size += chunk_size & 1;
|
||||
|
||||
if (bytestream2_get_bytes_left(&gb) < chunk_size)
|
||||
return AVERROR_INVALIDDATA;
|
||||
if (bytestream2_get_bytes_left(&gb) < chunk_size) {
|
||||
/* we seem to be running out of data, but it could also be that the
|
||||
bitstream has trailing junk leading to bogus chunk_size. */
|
||||
break;
|
||||
}
|
||||
|
||||
switch (chunk_type) {
|
||||
case MKTAG('V', 'P', '8', ' '):
|
||||
|
Loading…
Reference in New Issue
Block a user