avcodec/magicyuv: Improve overread check when parsing Huffman tables

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
pull/353/head
Andreas Rheinhardt 4 years ago
parent 94dc3385e4
commit 85737a4d76
  1. 7
      libavcodec/magicyuv.c

@ -394,8 +394,13 @@ static int build_huffman(AVCodecContext *avctx, GetBitContext *gbit, int max)
while (get_bits_left(gbit) >= 8) {
int b = get_bits(gbit, 1);
int x = get_bits(gbit, 7);
int l = get_bitsz(gbit, b * 8) + 1;
int l = 1;
if (b) {
if (get_bits_left(gbit) < 8)
break;
l += get_bits(gbit, 8);
}
k = j + l;
if (k > max || x == 0 || x > 32) {
av_log(avctx, AV_LOG_ERROR, "Invalid Huffman codes\n");

Loading…
Cancel
Save