From 98a60969315dba8c1e8231f561e1551670bc80ae Mon Sep 17 00:00:00 2001 Message-Id: <98a60969315dba8c1e8231f561e1551670bc80ae.1511192857.git.agx@sigxcpu.org> From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Wed, 15 Nov 2017 13:12:00 +0100 Subject: [PATCH] CVE-2017-14160: make sure we don't overflow --- lib/psy.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/psy.c b/lib/psy.c index 422c6f1e..8bbf6cf3 100644 --- a/lib/psy.c +++ b/lib/psy.c @@ -599,7 +599,7 @@ static void bark_noise_hybridmp(int n,const long *b, XY[i] = tXY; } - for (i = 0, x = 0.f;; i++, x += 1.f) { + for (i = 0, x = 0.f; i < n; i++, x += 1.f) { lo = b[i] >> 16; if( lo>=0 ) break; @@ -621,12 +621,11 @@ static void bark_noise_hybridmp(int n,const long *b, noise[i] = R - offset; } - for ( ;; i++, x += 1.f) { + for ( ; i < n; i++, x += 1.f) { lo = b[i] >> 16; hi = b[i] & 0xffff; if(hi>=n)break; - tN = N[hi] - N[lo]; tX = X[hi] - X[lo]; tXX = XX[hi] - XX[lo]; @@ -651,7 +650,7 @@ static void bark_noise_hybridmp(int n,const long *b, if (fixed <= 0) return; - for (i = 0, x = 0.f;; i++, x += 1.f) { + for (i = 0, x = 0.f; i < n; i++, x += 1.f) { hi = i + fixed / 2; lo = hi - fixed; if(lo>=0)break; @@ -670,7 +669,7 @@ static void bark_noise_hybridmp(int n,const long *b, if (R - offset < noise[i]) noise[i] = R - offset; } - for ( ;; i++, x += 1.f) { + for ( ; i < n; i++, x += 1.f) { hi = i + fixed / 2; lo = hi - fixed; -- 2.15.0