aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-07-17 15:22:36 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-09-21 17:56:15 +0200
commit5c2d6849862f975254a82d8cdb82d64f8f148ec2 (patch)
tree609dc3bb9c819f2ca4b97d19ec922c807c40705e
parent77dafced713f47dc7c356689871b2ba9d8e64f45 (diff)
downloadffmpeg-5c2d6849862f975254a82d8cdb82d64f8f148ec2.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> (cherry picked from commit 09c5f990bc7629dfbee8c760fd485936c60a7b40)
-rw-r--r--libavcodec/rv30.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c
index b43859b9cb..53d824a109 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;