mac80211: drop unencrypted frames if encryption is expected
authorJohannes Berg <johannes@sipsolutions.net>
Wed, 28 Nov 2007 10:07:57 +0000 (11:07 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 29 Nov 2007 23:08:48 +0000 (18:08 -0500)
This patch fixes a regression I (most likely) introduced, namely that
unencrypted frames are right now accepted even if we have a key for that
specific sender. That has very bad security implications.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/rx.c

index 428a9fcf57d62c90c6537490fd193d6342b47ee7..00f908d9275e3e69a92daf1cc4d6741015d051d5 100644 (file)
@@ -997,7 +997,7 @@ ieee80211_rx_h_drop_unencrypted(struct ieee80211_txrx_data *rx)
        if (unlikely(!(rx->fc & IEEE80211_FCTL_PROTECTED) &&
                     (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA &&
                     (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_NULLFUNC &&
-                    rx->sdata->drop_unencrypted &&
+                    (rx->key || rx->sdata->drop_unencrypted) &&
                     (rx->sdata->eapol == 0 || !ieee80211_is_eapol(rx->skb)))) {
                if (net_ratelimit())
                        printk(KERN_DEBUG "%s: RX non-WEP frame, but expected "