Browse Source

g729dec: check pitch_delay_int.

Fix out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.1
Michael Niedermayer 12 years ago
parent
commit
a974adc3c7
1 changed files with 4 additions and 0 deletions
  1. +4
    -0
      libavcodec/g729dec.c

+ 4
- 0
libavcodec/g729dec.c View File

@@ -510,6 +510,10 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,

/* Round pitch delay to nearest (used everywhere except ff_acelp_interpolate). */
pitch_delay_int[i] = (pitch_delay_3x + 1) / 3;
if (pitch_delay_int[i] > PITCH_DELAY_MAX) {
av_log(avctx, AV_LOG_WARNING, "pitch_delay_int %d is too large\n", pitch_delay_int[i]);
pitch_delay_int[i] = PITCH_DELAY_MAX;
}

if (frame_erasure) {
ctx->rand_value = g729_prng(ctx->rand_value);


Loading…
Cancel
Save