From: Andreas Cadhalpun Date: Tue, 15 Dec 2015 21:00:31 +0000 (+0100) Subject: opus_silk: fix typo causing overflow in silk_stabilize_lsf X-Git-Tag: n3.1-dev~1024 X-Git-Url: http://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/f61d44b74aaae1d306d8a0d38b7b3d4292c89ced opus_silk: fix typo causing overflow in silk_stabilize_lsf Due to this typo max_center can be too large, causing nlsf to be set to too large values, which in turn can cause nlsf[i - 1] + min_delta[i] to overflow to a negative value, which is not allowed for nlsf and can cause an out of bounds read in silk_lsf2lpc. Reviewed-by: Michael Niedermayer Signed-off-by: Andreas Cadhalpun --- diff --git a/libavcodec/opus_silk.c b/libavcodec/opus_silk.c index 841d1ed..73526f9 100644 --- a/libavcodec/opus_silk.c +++ b/libavcodec/opus_silk.c @@ -824,7 +824,7 @@ static inline void silk_stabilize_lsf(int16_t nlsf[16], int order, const uint16_ /* upper extent */ for (i = order; i > k; i--) - max_center -= min_delta[k]; + max_center -= min_delta[i]; max_center -= min_delta[k] >> 1; /* move apart */