avcodec/cllc: Check bitstream end before decoding pixels
authorMichael Niedermayer <michael@niedermayer.cc>
Wed, 24 May 2017 17:52:00 +0000 (19:52 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 24 May 2017 18:03:33 +0000 (20:03 +0200)
Fixes timeout
Fixes: 1802/clusterfuzz-testcase-minimized-5008293510512640

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

index 933144a..af0f6da 100644 (file)
@@ -429,6 +429,9 @@ static int cllc_decode_frame(AVCodecContext *avctx, void *data,
     coding_type = (AV_RL32(src) >> 8) & 0xFF;
     av_log(avctx, AV_LOG_DEBUG, "Frame coding type: %d\n", coding_type);
 
+    if(get_bits_left(&gb) < avctx->height * avctx->width)
+        return AVERROR_INVALIDDATA;
+
     switch (coding_type) {
     case 0:
         avctx->pix_fmt             = AV_PIX_FMT_YUV422P;