diff options
author | Deren Wu <deren.wu@mediatek.com> | 2022-11-27 10:35:37 +0800 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2022-12-01 17:29:14 +0100 |
commit | 03dd0d49de7db680a856fa566963bb8421f46368 (patch) | |
tree | 4e961c2e953bb181d8cb4d2af5e51093046a76f5 /drivers/net/wireless/mediatek/mt76/mt76.h | |
parent | wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices (diff) | |
download | wireguard-linux-03dd0d49de7db680a856fa566963bb8421f46368.tar.xz wireguard-linux-03dd0d49de7db680a856fa566963bb8421f46368.zip |
wifi: mt76: fix coverity overrun-call in mt76_get_txpower()
Make sure the nss is valid for nss_delta array. Return zero
if the index is invalid.
Coverity message:
Event overrun-call: Overrunning callee's array of size 4 by passing
argument "n_chains" (which evaluates to 15) in call to
"mt76_tx_power_nss_delta".
int delta = mt76_tx_power_nss_delta(n_chains);
Fixes: 07cda406308b ("mt76: fix rounding issues on converting per-chain and combined txpower")
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt76.h')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt76.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h index 33f87e518d68..32a77a0ae9da 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76.h +++ b/drivers/net/wireless/mediatek/mt76/mt76.h @@ -1110,8 +1110,9 @@ static inline bool mt76_is_skb_pktid(u8 pktid) static inline u8 mt76_tx_power_nss_delta(u8 nss) { static const u8 nss_delta[4] = { 0, 6, 9, 12 }; + u8 idx = nss - 1; - return nss_delta[nss - 1]; + return (idx < ARRAY_SIZE(nss_delta)) ? nss_delta[idx] : 0; } static inline bool mt76_testmode_enabled(struct mt76_phy *phy) |