diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-12-02 15:46:37 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-02 15:46:37 -0500 |
commit | 09f921f83faa49cdea25abfb98c439c01526b89d (patch) | |
tree | 1e8ee5c8f14e0e57965eca81bc6725288fd3597b /net/mac80211/rx.c | |
parent | 4cebb34caa5122216a1e2451eae9e0fc47ec2589 (diff) | |
parent | d89197c7f34934fbb0f96d938a0d6cfe0b8bcb1c (diff) | |
download | linux-09f921f83faa49cdea25abfb98c439c01526b89d.tar.bz2 |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Conflicts:
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index d83334bbb245..6289525c0998 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -2254,6 +2254,10 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx) break; case cpu_to_le16(IEEE80211_STYPE_DEAUTH): case cpu_to_le16(IEEE80211_STYPE_DISASSOC): + if (is_multicast_ether_addr(mgmt->da) && + !is_broadcast_ether_addr(mgmt->da)) + return RX_DROP_MONITOR; + /* process only for station */ if (sdata->vif.type != NL80211_IFTYPE_STATION) return RX_DROP_MONITOR; @@ -2747,6 +2751,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, if (ieee80211_prepare_and_rx_handle(&rx, skb, true)) return; + goto out; } } @@ -2786,6 +2791,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, return; } + out: dev_kfree_skb(skb); } |