avcodec/asvdec: Check buf_size
authorMichael Niedermayer <michael@niedermayer.cc>
Mon, 22 May 2017 21:53:53 +0000 (23:53 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 22 May 2017 21:54:33 +0000 (23:54 +0200)
Fixes Timeout
Fixes: 1746/clusterfuzz-testcase-minimized-6687393392361472

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/asvdec.c

index 603a092..467e255 100644 (file)
@@ -210,6 +210,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
     AVFrame *const p = data;
     int mb_x, mb_y, ret;
 
+    if (buf_size * 8LL < a->mb_height2 * a->mb_width2 * 13LL)
+        return AVERROR_INVALIDDATA;
+
     if ((ret = ff_get_buffer(avctx, p, 0)) < 0)
         return ret;
     p->pict_type = AV_PICTURE_TYPE_I;