58 lines
1.5 KiB
Diff
58 lines
1.5 KiB
Diff
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?= <agx@sigxcpu.org>
|
|
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
|
|
|