diff options
author | Johannes Berg <johannes.berg@intel.com> | 2019-02-13 09:13:30 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2019-06-14 09:46:33 -0400 |
commit | 588f7d39b3592a36fb7702ae3b8bdd9be4621e2f (patch) | |
tree | 86f64bf46f4305f08c3032f35f985ffcc66806ac | |
parent | 180aa422ef2701bd466bb9ade1923a17adfc6299 (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.c | 2 |
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); |