DragonFlyBSD Kernel Audit
DF-0363 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netproto/802_11/wlan/ieee80211_proto.c b/sys/netproto/802_11/wlan/ieee80211_proto.c
--- a/sys/netproto/802_11/wlan/ieee80211_proto.c
+++ b/sys/netproto/802_11/wlan/ieee80211_proto.c
@@ -571,6 +571,8 @@
 		kprintf("(%s)", ether_sprintf(wh->i_addr2));
 		break;
 	case IEEE80211_FC1_DIR_DSTODS:
+		if (len < sizeof(struct ieee80211_frame_addr4))
+			return;
 		kprintf("DSDS %s", ether_sprintf((const uint8_t *)&wh[1]));
 		kprintf("->%s", ether_sprintf(wh->i_addr3));
 		kprintf("(%s", ether_sprintf(wh->i_addr2));