[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071014175115.GL4211@stusta.de>
Date: Sun, 14 Oct 2007 19:51:15 +0200
From: Adrian Bunk <bunk@...nel.org>
To: yi.zhu@...el.com
Cc: linux-wireless@...r.kernel.org,
ipw3945-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org
Subject: [2.6 patch] iwl4965-base.c: fix off-by-one errors
This patch fixes two off-by-one errors resulting in array overflows
spotted by the Coverity checker.
Signed-off-by: Adrian Bunk <bunk@...nel.org>
---
drivers/net/wireless/iwlwifi/iwl4965-base.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- linux-2.6/drivers/net/wireless/iwlwifi/iwl4965-base.c.old 2007-10-14 16:52:21.000000000 +0200
+++ linux-2.6/drivers/net/wireless/iwlwifi/iwl4965-base.c 2007-10-14 16:59:37.000000000 +0200
@@ -4489,23 +4489,23 @@ static u8 ratio2dB[100] = {
39, 39, 39, 39, 39, 40, 40, 40, 40, 40 /* 90 - 99 */
};
/* Calculates a relative dB value from a ratio of linear
* (i.e. not dB) signal levels.
* Conversion assumes that levels are voltages (20*log), not powers (10*log). */
int iwl_calc_db_from_ratio(int sig_ratio)
{
- /* Anything above 1000:1 just report as 60 dB */
- if (sig_ratio > 1000)
+ /* 1000:1 or higher just report as 60 dB */
+ if (sig_ratio >= 1000)
return 60;
- /* Above 100:1, divide by 10 and use table,
+ /* 100:1 or higher, divide by 10 and use table,
* add 20 dB to make up for divide by 10 */
- if (sig_ratio > 100)
+ if (sig_ratio >= 100)
return (20 + (int)ratio2dB[sig_ratio/10]);
/* We shouldn't see this */
if (sig_ratio < 1)
return 0;
/* Use table for ratios 1:1 - 99:1 */
return (int)ratio2dB[sig_ratio];
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists