wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list()
authorDan Carpenter <error27@gmail.com>
Mon, 6 Feb 2023 13:15:48 +0000 (16:15 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 22 Feb 2023 09:56:30 +0000 (11:56 +0200)
This loop checks that i < max at the start of loop but then it does
i++ which could put it past the end of the array.  It's harmless to
check again and prevent a potential out of bounds.

Fixes: 1048643ea94d ("ath5k: Clean up eeprom parsing and add missing calibration data")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/Y+D9hPQrHfWBJhXz@kili
drivers/net/wireless/ath/ath5k/eeprom.c

index d444b3d..58d3e86 100644 (file)
@@ -529,7 +529,7 @@ ath5k_eeprom_read_freq_list(struct ath5k_hw *ah, int *offset, int max,
                ee->ee_n_piers[mode]++;
 
                freq2 = (val >> 8) & 0xff;
-               if (!freq2)
+               if (!freq2 || i >= max)
                        break;
 
                pc[i++].freq = ath5k_eeprom_bin2freq(ee,