avcodec/msvideo1: Check for too small dimensions
authorMichael Niedermayer <michael@niedermayer.cc>
Sat, 1 Dec 2018 21:16:19 +0000 (22:16 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 4 Dec 2018 23:50:13 +0000 (00:50 +0100)
Such low resolution would result in empty output as a minimum of 4x4 is needed
We could also check for multiple of 4 dimensions but that is not needed

Fixes: Timeout
Fixes: 11191/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MSVIDEO1_fuzzer-5739529588178944

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

index 29700f5..de048d8 100644 (file)
@@ -62,6 +62,9 @@ static av_cold int msvideo1_decode_init(AVCodecContext *avctx)
 
     s->avctx = avctx;
 
+    if (avctx->width < 4 || avctx->height < 4)
+        return AVERROR_INVALIDDATA;
+
     /* figure out the colorspace based on the presence of a palette */
     if (s->avctx->bits_per_coded_sample == 8) {
         s->mode_8bit = 1;