wifi: mt76: mt7925: fix off by one in mt7925_mcu_hw_scan()
Subsystems (3)
PATCH 1/1 wifi: mt76: mt7925: fix off by one in mt7925_mcu_hw_scan()
The ssid->ssids[] and sreq->ssids[] arrays have MT7925_RNR_SCAN_MAX_BSSIDS elements so this >= needs to be > to prevent an out of bounds access.
Fixes 8284815ca161 ("wifi: mt76: mt7925: add RNR scan support for 6GHz")
Signed-off-by Dan Carpenter <[email protected]>
---
Please review this one carefully. I'm less sure about the second chunk. Also maybe we should just delete this condition or check sreq->n_ssids instead?
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +2 -2
@@ -2866,7 +2866,7 @@ int mt7925_mcu_hw_scan(struct mt76_phy *phy, struct ieee80211_vif *vif,for (i =0 ; i < sreq->n_ssids; i++) {if (!sreq->ssids[i].ssid_len)continue ; -if (i >MT7925_RNR_SCAN_MAX_BSSIDS ) +if (i >=MT7925_RNR_SCAN_MAX_BSSIDS )break ; ssid->ssids[i].ssid_len =cpu_to_le32 (sreq->ssids[i].ssid_len);
@@ -2883,7 +2883,7 @@ int mt7925_mcu_hw_scan(struct mt76_phy *phy, struct ieee80211_vif *vif,mt76_connac_mcu_build_rnr_scan_param (mdev, sreq);for (j =0 ; j < mdev->rnr.bssid_num; j++) { -if (j >MT7925_RNR_SCAN_MAX_BSSIDS ) +if (j >=MT7925_RNR_SCAN_MAX_BSSIDS )break ; tlv = mt76_connac_mcu_add_tlv(skb, UNI_SCAN_BSSID,
Signature · 1 line
2.47.2