aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorJanne Grunau <janne-libav@jannau.net>2012-01-23 21:33:34 +0100
committerJanne Grunau <janne-libav@jannau.net>2012-01-25 14:31:57 +0100
commit366ac22ea5a8bab63c7f46cdad2ddb2ff22cdbed (patch)
tree65fbfcff9b26e490e6791d74b2030c49d2305af2 /libavcodec
parent7072a6a4bb058a906076d0813ec46595bc2a9a09 (diff)
downloadffmpeg-366ac22ea5a8bab63c7f46cdad2ddb2ff22cdbed.tar.gz
indeo5: prevent null pointer dereference on broken files
Found by John Villamil <johnv@matasano.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/indeo5.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/indeo5.c b/libavcodec/indeo5.c
index 019fa2b8da..5263251f8d 100644
--- a/libavcodec/indeo5.c
+++ b/libavcodec/indeo5.c
@@ -453,6 +453,10 @@ static int decode_mb_info(IVI5DecContext *ctx, IVIBandDesc *band,
ref_mb = tile->ref_mbs;
offs = tile->ypos * band->pitch + tile->xpos;
+ if (!ref_mb &&
+ ((band->qdelta_present && band->inherit_qdelta) || band->inherit_mv))
+ return AVERROR_INVALIDDATA;
+
/* scale factor for motion vectors */
mv_scale = (ctx->planes[0].bands[0].mb_size >> 3) - (band->mb_size >> 3);
mv_x = mv_y = 0;