DragonFlyBSD Kernel Audit
DF-0365 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netproto/802_11/wlan/ieee80211.c b/sys/netproto/802_11/wlan/ieee80211.c
--- a/sys/netproto/802_11/wlan/ieee80211.c
+++ b/sys/netproto/802_11/wlan/ieee80211.c
@@ -1584,6 +1584,8 @@
 					break;
 			if (j == allrates.rs_nrates) {
 				/* unique, add to the set */
+				if (allrates.rs_nrates >= IEEE80211_RATE_MAXSIZE)
+					break;  /* stop collecting - would overflow rs_rates[] */
 				allrates.rs_rates[j] = r;
 				allrates.rs_nrates++;
 			}