diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-07-17 15:22:36 +0200 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-09-04 16:09:40 +0200 |
commit | 09c5f990bc7629dfbee8c760fd485936c60a7b40 (patch) | |
tree | 1a1d236398dafc1e5c4075cf06844cbcfacc02bd | |
parent | 61e2e2969127e4cb8e0d32151fed3e03515fe436 (diff) | |
download | ffmpeg-09c5f990bc7629dfbee8c760fd485936c60a7b40.tar.gz |
Check extradata size on resolution change.
Ignore resolution change if resolution not defined in extradata.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
-rw-r--r-- | libavcodec/rv30.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c index f724c0b794..074c1265a6 100644 --- a/libavcodec/rv30.c +++ b/libavcodec/rv30.c @@ -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; |