summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2019-02-13 09:13:30 -0500
committerJohannes Berg <johannes.berg@intel.com>2019-06-14 09:46:33 -0400
commit588f7d39b3592a36fb7702ae3b8bdd9be4621e2f (patch)
tree86f64bf46f4305f08c3032f35f985ffcc66806ac
parent180aa422ef2701bd466bb9ade1923a17adfc6299 (diff)
mac80211: drop robust management frames from unknown TA
When receiving a robust management frame, drop it if we don't have rx->sta since then we don't have a security association and thus couldn't possibly validate the frame. Cc: stable@vger.kernel.org Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/mac80211/rx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 25577ede2986..fd3740000e87 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3831,6 +3831,8 @@ static bool ieee80211_accept_frame(struct ieee80211_rx_data *rx)
3831 case NL80211_IFTYPE_STATION: 3831 case NL80211_IFTYPE_STATION:
3832 if (!bssid && !sdata->u.mgd.use_4addr) 3832 if (!bssid && !sdata->u.mgd.use_4addr)
3833 return false; 3833 return false;
3834 if (ieee80211_is_robust_mgmt_frame(skb) && !rx->sta)
3835 return false;
3834 if (multicast) 3836 if (multicast)
3835 return true; 3837 return true;
3836 return ether_addr_equal(sdata->vif.addr, hdr->addr1); 3838 return ether_addr_equal(sdata->vif.addr, hdr->addr1);