linux/net/mac80211
Johannes Berg b8d92c9c14 mac80211: don't process work item with wrong frame
When we process a frame, we currently just match it
to the work struct by the MAC addresses, and not by
the work type. This means that we can end up doing
the work for an association request item when (for
whatever reason) we receive another frame type, for
example a probe response. Processing the wrong type
of frame will lead to completely invalid data being
processed, and will lead to various problems like
thinking the association was successful even if the
AP never sent an assocation response.

Fix this by making each processing function check
that it is invoked for the right work struct type
only and continue processing otherwise (and drop
frames that we didn't expect).

This bug was uncovered during the debugging for
https://bugzilla.kernel.org/show_bug.cgi?id=15862
but doesn't seem to be the cause for any of the
various problems reported there.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-05-12 16:28:52 -04:00
..
aes_ccm.c mac80211: aes_ccm.c remove crypto wrapper and extra args 2008-07-08 14:16:02 -04:00
aes_ccm.h mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
aes_cmac.c mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
aes_cmac.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
agg-rx.c mac80211: trace interface name 2009-12-21 18:38:54 -05:00
agg-tx.c mac80211: remove bogus TX agg state assignment 2010-04-19 16:34:11 -04:00
cfg.c cfg80211/mac80211: allow registering for and sending action frames 2010-02-15 16:14:15 -05:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
debugfs_key.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_key.h mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
debugfs_netdev.c mac80211: Fix memory leak in ieee80211_if_write() 2010-03-10 16:29:11 -05:00
debugfs_netdev.h mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_sta.c mac80211: reduce stack usage in sta_agg_status_read() 2010-02-01 15:40:07 -05:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
debugfs.c mac80211: Added a new debugfs file for reading channel_type 2010-02-08 16:50:57 -05:00
debugfs.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
driver-ops.h mac80211: remove get_tx_stats() driver op 2010-02-08 16:51:01 -05:00
driver-trace.c mac80211: fix sparse warnings/errors 2009-08-04 16:43:25 -04:00
driver-trace.h mac80211: remove get_tx_stats() driver op 2010-02-08 16:51:01 -05:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-28 15:09:11 -05:00
ibss.c mac80211: allow station add/remove to sleep 2010-02-08 16:50:53 -05:00
ieee80211_i.h cfg80211/mac80211: allow registering for and sending action frames 2010-02-15 16:14:15 -05:00
iface.c mac80211: fix netdev rename 2010-02-15 16:12:52 -05:00
Kconfig mac80211: remove payload alignment warning 2009-12-21 18:56:09 -05:00
key.c mac80211: add ieee80211_sdata_running 2009-12-28 16:54:49 -05:00
key.h mac80211 : fix a race with update_tkip_key 2009-12-22 13:31:14 -05:00
led.c mac80211: rename files 2008-04-08 16:44:45 -04:00
led.h mac80211: rename files 2008-04-08 16:44:45 -04:00
main.c mac80211: annotate station rcu dereferences 2010-04-06 15:53:30 -04:00
Makefile mac80211: Generalize off-channel operation helpers from scan code 2009-12-28 16:55:01 -05:00
mesh_hwmp.c mac80211: fix PREQ processing and one small bug 2010-03-30 15:37:23 -04:00
mesh_pathtbl.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2009-12-25 16:34:56 -08:00
mesh_plink.c mac80211: allow station add/remove to sleep 2010-02-08 16:50:53 -05:00
mesh.c mac80211: Handle mesh action frames in ieee80211_rx_h_action 2010-04-06 15:53:28 -04:00
mesh.h mac80211: Revert 'Use correct sign for mesh active path refresh' 2009-12-10 16:12:52 -05:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
mlme.c mac80211: remove association work when processing deauth request 2010-05-07 14:26:38 -04:00
offchannel.c mac80211: Fixed netif_tx_wake_all_queues in IBSS mode 2010-01-15 16:58:28 -05:00
pm.c mac80211: allow station add/remove to sleep 2010-02-08 16:50:53 -05:00
rate.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-02-26 16:54:45 -05:00
rate.h mac80211: Fix HT rate control configuration 2010-03-03 15:39:21 -05:00
rc80211_minstrel_debugfs.c net: file_operations should be const 2009-09-02 01:03:53 -07:00
rc80211_minstrel.c rc80211_minstrel: fix contention window calculation 2009-09-23 11:35:42 -04:00
rc80211_minstrel.h mac80211: Remove unnused throughput field from minstrel_rate. 2009-08-28 14:40:34 -04:00
rc80211_pid_algo.c mac80211: pid: replace open-coded msecs_to_jiffies 2010-01-19 16:25:15 -05:00
rc80211_pid_debugfs.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
rc80211_pid.h mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rx.c mac80211: Handle mesh action frames in ieee80211_rx_h_action 2010-04-06 15:53:28 -04:00
scan.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-02-08 16:38:38 -05:00
spectmgmt.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
sta_info.c mac80211: annotate station rcu dereferences 2010-04-06 15:53:30 -04:00
sta_info.h mac80211: Deny TX BA session requests during disassociation 2010-02-10 16:36:52 -05:00
status.c cfg80211/mac80211: allow registering for and sending action frames 2010-02-15 16:14:15 -05:00
tkip.c mac80211: pass vif and station to update_tkip_key 2010-01-22 16:08:55 -05:00
tkip.h mac80211: tkip.c consolidate tkip IV writing in helper 2008-06-14 12:18:13 -04:00
tx.c mac80211: move netdev queue enabling to correct spot 2010-03-30 15:37:28 -04:00
util.c mac80211: move netdev queue enabling to correct spot 2010-03-30 15:37:28 -04:00
wep.c mac80211: avoid NULL ptr deref when using WEP 2010-01-22 12:39:14 -05:00
wep.h cfg80211: rework key operation 2009-07-24 15:05:09 -04:00
wme.c mac80211: fix-up build breakage in 2.6.33 2010-01-06 15:35:49 -05:00
wme.h mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
work.c mac80211: don't process work item with wrong frame 2010-05-12 16:28:52 -04:00
wpa.c mac80211: move control.hw_key assignment 2010-01-19 16:25:19 -05:00
wpa.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00