summaryrefslogtreecommitdiff
path: root/libavcodec/rv30.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-07-17 15:22:36 +0200
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-09-04 16:09:40 +0200
commit09c5f990bc7629dfbee8c760fd485936c60a7b40 (patch)
tree1a1d236398dafc1e5c4075cf06844cbcfacc02bd /libavcodec/rv30.c
parent61e2e2969127e4cb8e0d32151fed3e03515fe436 (diff)
downloadffmpeg-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>
Diffstat (limited to 'libavcodec/rv30.c')
-rw-r--r--libavcodec/rv30.c5
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;