DragonFlyBSD Kernel Audit
DF-1400 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/netif/wi/if_wi.c b/sys/dev/netif/wi/if_wi.c
index 1111111..2222222 100644
--- a/sys/dev/netif/wi/if_wi.c
+++ b/sys/dev/netif/wi/if_wi.c
@@ -1764,6 +1764,8 @@
 		memset(wkey, 0, sizeof(wkey));
 		for (i = 0; i < IEEE80211_WEP_NKID; i++) {
 			keylen = vap->iv_nw_keys[i].wk_keylen;
+			if (keylen > sizeof(wkey[i].wi_keydat))
+				keylen = sizeof(wkey[i].wi_keydat);
 			wkey[i].wi_keylen = htole16(keylen);
 			memcpy(wkey[i].wi_keydat, vap->iv_nw_keys[i].wk_key,
 			    keylen);