hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/net/wireless/ath/ath5k/eeprom.c
....@@ -529,7 +529,7 @@
529529 ee->ee_n_piers[mode]++;
530530
531531 freq2 = (val >> 8) & 0xff;
532
- if (!freq2)
532
+ if (!freq2 || i >= max)
533533 break;
534534
535535 pc[i++].freq = ath5k_eeprom_bin2freq(ee,
....@@ -745,6 +745,9 @@
745745 break;
746746 }
747747 }
748
+
749
+ if (idx == AR5K_EEPROM_N_PD_CURVES)
750
+ goto err_out;
748751
749752 ee->ee_pd_gains[mode] = 1;
750753
....@@ -1172,13 +1175,13 @@
11721175 offset += ath5k_pdgains_size_2413(ee,
11731176 AR5K_EEPROM_MODE_11B) +
11741177 AR5K_EEPROM_N_2GHZ_CHAN_2413 / 2;
1175
- /* fall through */
1178
+ fallthrough;
11761179 case AR5K_EEPROM_MODE_11B:
11771180 if (AR5K_EEPROM_HDR_11A(ee->ee_header))
11781181 offset += ath5k_pdgains_size_2413(ee,
11791182 AR5K_EEPROM_MODE_11A) +
11801183 AR5K_EEPROM_N_5GHZ_CHAN / 2;
1181
- /* fall through */
1184
+ fallthrough;
11821185 case AR5K_EEPROM_MODE_11A:
11831186 break;
11841187 default:
....@@ -1707,7 +1710,7 @@
17071710 struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
17081711 u32 offset;
17091712 u16 val;
1710
- int ret = 0, i;
1713
+ int i;
17111714
17121715 offset = AR5K_EEPROM_CTL(ee->ee_version) +
17131716 AR5K_EEPROM_N_CTLS(ee->ee_version);
....@@ -1730,7 +1733,7 @@
17301733 }
17311734 }
17321735
1733
- return ret;
1736
+ return 0;
17341737 }
17351738
17361739