diff --git a/libavcodec/g729dec.c b/libavcodec/g729dec.c index b44120fd859e50902875fa5ec319185025ce02ce..db3f013f323b7acceab8968c7e4bbe41caa47b56 100644 --- a/libavcodec/g729dec.c +++ b/libavcodec/g729dec.c @@ -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);