aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-12-15 22:00:31 +0100
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-12-20 16:13:19 +0100
commit7a26ea7a7e67cff8c1f3367e4f505f1c650ca0f5 (patch)
treea8ae627dd7bfa9804a6f6dfdb620552c1a86236e
parent6fc3f6f43b24b98a768acc28f03fec37ef1a79e3 (diff)
downloadffmpeg-7a26ea7a7e67cff8c1f3367e4f505f1c650ca0f5.tar.gz
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 <michael@niedermayer.cc> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> (cherry picked from commit f61d44b74aaae1d306d8a0d38b7b3d4292c89ced) Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
-rw-r--r--libavcodec/opus_silk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/opus_silk.c b/libavcodec/opus_silk.c
index 7a89479fb9..4c64cdfce6 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 */