DragonFlyBSD Kernel Audit
DF-0328 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netproto/802_11/wlan/ieee80211_node.c b/sys/netproto/802_11/wlan/ieee80211_node.c
--- a/sys/netproto/802_11/wlan/ieee80211_node.c
+++ b/sys/netproto/802_11/wlan/ieee80211_node.c
@@ -1171,7 +1171,10 @@
 
 	bzero(info, sizeof(*info));
 
-	for (i = 0; i < ni->ni_mimo_chains; i++) {
+	int nchain = ni->ni_mimo_chains;
+	if (nchain > IEEE80211_MAX_CHAINS)
+		nchain = IEEE80211_MAX_CHAINS;
+	for (i = 0; i < nchain; i++) {
 		avgrssi = ni->ni_mimo_rssi_ctl[i];
 		if (avgrssi == IEEE80211_RSSI_DUMMY_MARKER) {
 			info->rssi[i] = 0;