Check extradata size on resolution change.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 17 Jul 2011 13:22:36 +0000 (15:22 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 21 Sep 2011 15:56:15 +0000 (17:56 +0200)
Ignore resolution change if resolution not defined in extradata.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(cherry picked from commit 09c5f990bc7629dfbee8c760fd485936c60a7b40)

libavcodec/rv30.c

index b43859b..53d824a 100644 (file)
@@ -51,6 +51,11 @@ static int rv30_parse_slice_header(RV34DecContext *r, GetBitContext *gb, SliceIn
     skip_bits1(gb);
     si->pts = get_bits(gb, 13);
     rpr = get_bits(gb, r->rpr);
+    if (r->s.avctx->extradata_size < 8 + rpr*2) {
+        av_log(r->s.avctx, AV_LOG_WARNING,
+               "Extradata does not contain selected resolution\n");
+        rpr = 0;
+    }
     if(rpr){
         w = r->s.avctx->extradata[6 + rpr*2] << 2;
         h = r->s.avctx->extradata[7 + rpr*2] << 2;