h264_cavlc: check the size of the intra PCM data.

Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
pull/49/head
Anton Khirnov 11 years ago
parent ac0e03bab0
commit 074c769de9
  1. 4
      libavcodec/h264_cavlc.c

@ -765,6 +765,10 @@ decode_intra_mb:
// We assume these blocks are very rare so we do not optimize it.
h->intra_pcm_ptr = align_get_bits(&h->gb);
if (get_bits_left(&h->gb) < mb_size) {
av_log(h->avctx, AV_LOG_ERROR, "Not enough data for an intra PCM block.\n");
return AVERROR_INVALIDDATA;
}
skip_bits_long(&h->gb, mb_size);
// In deblocking, the quantizer is 0

Loading…
Cancel
Save