mac80211: drop spoofed packets in ad-hoc mode (fixes #12427)

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 38013
This commit is contained in:
Felix Fietkau 2013-09-17 09:17:40 +00:00
parent c78e4fb220
commit fd44388bbf

View file

@ -339,7 +339,17 @@
break; break;
case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP): case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP): case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP):
@@ -3059,10 +3067,16 @@ static int prepare_for_handlers(struct i @@ -3008,6 +3016,9 @@ static int prepare_for_handlers(struct i
case NL80211_IFTYPE_ADHOC:
if (!bssid)
return 0;
+ if (ether_addr_equal(sdata->vif.addr, hdr->addr2) ||
+ ether_addr_equal(sdata->u.ibss.bssid, hdr->addr2))
+ return 0;
if (ieee80211_is_beacon(hdr->frame_control)) {
return 1;
} else if (!ieee80211_bssid_match(bssid, sdata->u.ibss.bssid)) {
@@ -3059,10 +3070,16 @@ static int prepare_for_handlers(struct i
} }
break; break;
case NL80211_IFTYPE_WDS: case NL80211_IFTYPE_WDS: