aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2010-03-29 01:29:52 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-04-06 16:49:33 -0400
commitd211e90e28a074447584729018a39910d691d1a8 (patch)
treee9fb1b7d3265449fdc58783a573f337bcce26500 /net/mac80211
parenta124f3bed79d5fd5f87b09a7569ae6b7da4171d2 (diff)
mac80211: Fix robust management frame handling (MFP)
Commit e34e09401ee9888dd662b2fca5d607794a56daf2 incorrectly removed use of ieee80211_has_protected() from the management frame case and in practice, made this validation drop all Action frames when MFP is enabled. This should have only been done for frames with Protected field set to zero. Signed-off-by: Jouni Malinen <j@w1.fi> Cc: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/rx.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 14366d4afbed..b83d4db6ca6a 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1419,7 +1419,8 @@ ieee80211_drop_unencrypted_mgmt(struct ieee80211_rx_data *rx)
1419 return 0; 1419 return 0;
1420 1420
1421 if (rx->sta && test_sta_flags(rx->sta, WLAN_STA_MFP)) { 1421 if (rx->sta && test_sta_flags(rx->sta, WLAN_STA_MFP)) {
1422 if (unlikely(ieee80211_is_unicast_robust_mgmt_frame(rx->skb) && 1422 if (unlikely(!ieee80211_has_protected(fc) &&
1423 ieee80211_is_unicast_robust_mgmt_frame(rx->skb) &&
1423 rx->key)) 1424 rx->key))
1424 return -EACCES; 1425 return -EACCES;
1425 /* BIP does not use Protected field, so need to check MMIE */ 1426 /* BIP does not use Protected field, so need to check MMIE */