Commit 1afe49b0 authored by Michael Niedermayer's avatar Michael Niedermayer

indeo3: out of array read checks for decode_plane()

Fixes: avi+indeo3+++1-dog.avi
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent e9e642cb
......@@ -798,15 +798,19 @@ static int decode_plane(Indeo3DecodeContext *ctx, AVCodecContext *avctx,
int32_t strip_width)
{
Cell curr_cell;
int num_vectors;
uint32_t num_vectors;
/* each plane data starts with mc_vector_count field, */
/* an optional array of motion vectors followed by the vq data */
num_vectors = bytestream_get_le32(&data);
if(num_vectors >= data_size/2)
return AVERROR_INVALIDDATA;
ctx->mc_vectors = num_vectors ? data : 0;
data += num_vectors * 2;
data_size-= num_vectors * 2;
/* init the bitreader */
init_get_bits(&ctx->gb, &data[num_vectors * 2], data_size << 3);
init_get_bits(&ctx->gb, data, data_size << 3);
ctx->skip_bits = 0;
ctx->need_resync = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment