avcodec/pictordec: Error out if more than one plane is unused
authorMichael Niedermayer <michael@niedermayer.cc>
Wed, 12 Sep 2018 00:48:04 +0000 (02:48 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 4 Nov 2018 11:53:16 +0000 (12:53 +0100)
Fixes: Timeout
Fixes: 9797/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PICTOR_fuzzer-5664441659031552

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

index b29a484..65d2d49 100644 (file)
@@ -236,6 +236,9 @@ static int decode_frame(AVCodecContext *avctx,
             }
         }
 
+        if (s->nb_planes - plane > 1)
+            return AVERROR_INVALIDDATA;
+
         if (plane < s->nb_planes && x < avctx->width) {
             int run = (y + 1) * avctx->width - x;
             if (bits_per_plane == 8)