Blame SOURCES/0004-iwlegacy-ensure-loop-counter-addr-does-not-wrap-and-.patch

Kmods SIG 3bf4e9
From c2f9a4e4a5abfc84c01b738496b3fd2d471e0b18 Mon Sep 17 00:00:00 2001
Kmods SIG 3bf4e9
From: Colin Ian King <colin.king@canonical.com>
Kmods SIG 3bf4e9
Date: Sun, 26 Jan 2020 00:09:54 +0000
Kmods SIG 3bf4e9
Subject: [Backport c2f9a4e4a5ab] iwlegacy: ensure loop counter addr does not
Kmods SIG 3bf4e9
 wrap and cause an infinite loop
Kmods SIG 3bf4e9
Kmods SIG 3bf4e9
The loop counter addr is a u16 where as the upper limit of the loop
Kmods SIG 3bf4e9
is an int. In the unlikely event that the il->cfg->eeprom_size is
Kmods SIG 3bf4e9
greater than 64K then we end up with an infinite loop since addr will
Kmods SIG 3bf4e9
wrap around an never reach upper loop limit. Fix this by making addr
Kmods SIG 3bf4e9
an int.
Kmods SIG 3bf4e9
Kmods SIG 3bf4e9
Addresses-Coverity: ("Infinite loop")
Kmods SIG 3bf4e9
Fixes: be663ab67077 ("iwlwifi: split the drivers for agn and legacy devices 3945/4965")
Kmods SIG 3bf4e9
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Kmods SIG 3bf4e9
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
Kmods SIG 3bf4e9
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Kmods SIG 3bf4e9
---
Kmods SIG 3bf4e9
 src/common.c | 2 +-
Kmods SIG 3bf4e9
 1 file changed, 1 insertion(+), 1 deletion(-)
Kmods SIG 3bf4e9
Kmods SIG 3bf4e9
diff --git a/src/common.c b/src/common.c
Kmods SIG 3bf4e9
index d966b29b45ee7716499edae1ff171cd77176604b..348c17ce72f5cd57b66fb5ae161b2381b3585bf3 100644
Kmods SIG 3bf4e9
--- a/src/common.c
Kmods SIG 3bf4e9
+++ b/src/common.c
Kmods SIG 3bf4e9
@@ -699,7 +699,7 @@ il_eeprom_init(struct il_priv *il)
Kmods SIG 3bf4e9
 	u32 gp = _il_rd(il, CSR_EEPROM_GP);
Kmods SIG 3bf4e9
 	int sz;
Kmods SIG 3bf4e9
 	int ret;
Kmods SIG 3bf4e9
-	u16 addr;
Kmods SIG 3bf4e9
+	int addr;
Kmods SIG 3bf4e9
 
Kmods SIG 3bf4e9
 	/* allocate eeprom */
Kmods SIG 3bf4e9
 	sz = il->cfg->eeprom_size;
Kmods SIG 3bf4e9
-- 
Kmods SIG 3bf4e9
2.31.1
Kmods SIG 3bf4e9