Commit 06df835e authored by Colin Ian King's avatar Colin Ian King Committed by Kelsey Skunberg

iwlegacy: ensure loop counter addr does not wrap and cause an infinite loop

BugLink: https://bugs.launchpad.net/bugs/1868627

[ Upstream commit c2f9a4e4 ]

The loop counter addr is a u16 where as the upper limit of the loop
is an int. In the unlikely event that the il->cfg->eeprom_size is
greater than 64K then we end up with an infinite loop since addr will
wrap around an never reach upper loop limit. Fix this by making addr
an int.

Addresses-Coverity: ("Infinite loop")
Fixes: be663ab6 ("iwlwifi: split the drivers for agn and legacy devices 3945/4965")
Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
Acked-by: default avatarStanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
Signed-off-by: default avatarKelsey Skunberg <kelsey.skunberg@canonical.com>
parent e12cf1a9
......@@ -717,7 +717,7 @@ il_eeprom_init(struct il_priv *il)
u32 gp = _il_rd(il, CSR_EEPROM_GP);
int sz;
int ret;
u16 addr;
int addr;
/* allocate eeprom */
sz = il->cfg->eeprom_size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment