asvdec: Verify the amount of extradata
authorMartin Storsjö <martin@martin.st>
Thu, 19 Sep 2013 12:14:56 +0000 (15:14 +0300)
committerMartin Storsjö <martin@martin.st>
Thu, 19 Sep 2013 19:43:55 +0000 (22:43 +0300)
The init function reads one byte of extradata.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/asvdec.c

index 9f74abb..9ba2755 100644 (file)
@@ -274,6 +274,11 @@ static av_cold int decode_init(AVCodecContext *avctx)
     const int scale       = avctx->codec_id == AV_CODEC_ID_ASV1 ? 1 : 2;
     int i;
 
+    if (avctx->extradata_size < 1) {
+        av_log(avctx, AV_LOG_ERROR, "No extradata provided\n");
+        return AVERROR_INVALIDDATA;
+    }
+
     ff_asv_common_init(avctx);
     init_vlcs(a);
     ff_init_scantable(a->dsp.idct_permutation, &a->scantable, ff_asv_scantab);