mac80211: Fix robust management frame handling (MFP)
authorJouni Malinen <j@w1.fi>
Mon, 29 Mar 2010 05:29:52 +0000 (22:29 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 6 Apr 2010 20:49:33 +0000 (16:49 -0400)
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>
net/mac80211/rx.c

index 14366d4afbed6942d321993f5499c6e39182c77f..b83d4db6ca6a4fdeadde984e0c5b200bd97faca0 100644 (file)
@@ -1419,7 +1419,8 @@ ieee80211_drop_unencrypted_mgmt(struct ieee80211_rx_data *rx)
                return 0;
 
        if (rx->sta && test_sta_flags(rx->sta, WLAN_STA_MFP)) {
-               if (unlikely(ieee80211_is_unicast_robust_mgmt_frame(rx->skb) &&
+               if (unlikely(!ieee80211_has_protected(fc) &&
+                            ieee80211_is_unicast_robust_mgmt_frame(rx->skb) &&
                             rx->key))
                        return -EACCES;
                /* BIP does not use Protected field, so need to check MMIE */