avcodec/truemotion1: Initialize mb_change_byte only when needed

Fixes out of array read
Fixes: d92114d8c2a019b8a6e50cd2a7301b54/asan_heap-oob_26bf563_60_1d3420277533de9dbf8aba3f93af346f.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
pull/160/head
Michael Niedermayer 9 years ago
parent a8b254e436
commit a813cdda48
  1. 3
      libavcodec/truemotion1.c

@ -645,7 +645,8 @@ static void truemotion1_decode_16bit(TrueMotion1Context *s)
current_pixel_pair = (unsigned int *)current_line;
vert_pred = s->vert_pred;
mb_change_index = 0;
mb_change_byte = mb_change_bits[mb_change_index++];
if (!keyframe)
mb_change_byte = mb_change_bits[mb_change_index++];
mb_change_byte_mask = 0x01;
pixels_left = s->avctx->width;

Loading…
Cancel
Save