summaryrefslogtreecommitdiff
path: root/libavcodec/webp.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2017-05-08 14:43:01 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2017-05-09 19:11:58 +0200
commit2f2bc2e2463221dc4d02dcd8a5a0047d2cda5261 (patch)
treee5059746d2106313f776642940d8de66d41b868e /libavcodec/webp.c
parentcfbebe9dda7d0833b89dc6c2a69a56e50f2a7989 (diff)
downloadffmpeg-2f2bc2e2463221dc4d02dcd8a5a0047d2cda5261.tar.gz
avcodec/webp: Check for VP8X after other VP8 chunks
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/webp.c')
-rw-r--r--libavcodec/webp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/webp.c b/libavcodec/webp.c
index d21536a286..a4fd295250 100644
--- a/libavcodec/webp.c
+++ b/libavcodec/webp.c
@@ -1423,6 +1423,10 @@ static int webp_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
bytestream2_skip(&gb, chunk_size);
break;
case MKTAG('V', 'P', '8', 'X'):
+ if (s->width || s->height || *got_frame) {
+ av_log(avctx, AV_LOG_ERROR, "Canvas dimensions are already set\n");
+ return AVERROR_INVALIDDATA;
+ }
vp8x_flags = bytestream2_get_byte(&gb);
bytestream2_skip(&gb, 3);
s->width = bytestream2_get_le24(&gb) + 1;