Browse Source

h264: check for invalid zeros_left before writing

Prevent an invalid write into coeffs[scantable[-1]] if zeros_left
itself was an invalid VLC code (and thus -1).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
tags/n1.1
Ronald S. Bultje Luca Barbato 13 years ago
parent
commit
ddd7559ad9
1 changed files with 6 additions and 5 deletions
  1. +6
    -5
      libavcodec/h264_cavlc.c

+ 6
- 5
libavcodec/h264_cavlc.c View File

@@ -610,17 +610,18 @@ static int decode_residual(H264Context *h, GetBitContext *gb, DCTELEM *block, in
} \
}

if (zeros_left < 0) {
av_log(h->s.avctx, AV_LOG_ERROR,
"negative number of zero coeffs at %d %d\n", s->mb_x, s->mb_y);
return AVERROR_INVALIDDATA;
}

if (h->pixel_shift) {
STORE_BLOCK(int32_t)
} else {
STORE_BLOCK(int16_t)
}

if(zeros_left<0){
av_log(h->s.avctx, AV_LOG_ERROR, "negative number of zero coeffs at %d %d\n", s->mb_x, s->mb_y);
return -1;
}

return 0;
}



Loading…
Cancel
Save