DF-0363 / fix.diff
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)); |