1
linux/net/mac80211
Jouni Malinen 2b58b20939 mac80211: Fix debugfs union misuse and pointer corruption
debugfs union in struct ieee80211_sub_if_data is misused by including a
common default_key dentry as a union member. This ends occupying the same
memory area with the first dentry in other union members (structures;
usually drop_unencrypted). Consequently, debugfs operations on
default_key symlinks and drop_unencrypted entry are using the same
dentry pointer even though they are supposed to be separate ones. This
can lead to removing entries incorrectly or potentially leaving
something behind since one of the dentry pointers gets lost.

Fix this by moving the default_key dentry to a new struct
(common_debugfs) that contains dentries (more to be added in future)
that are shared by all vif types. The debugfs union must only be used
for vif type-specific entries to avoid this type of pointer corruption.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-09-02 17:39:50 -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
cfg.c mac80211: fix cfg80211 hooks for master interface 2008-07-29 16:55:08 -04:00
cfg.h
debugfs_key.c mac80211: Fix debugfs union misuse and pointer corruption 2008-09-02 17:39:50 -04:00
debugfs_key.h
debugfs_netdev.c mac80211: Fix debugfs file add/del for netdev 2008-08-26 20:06:33 -04:00
debugfs_netdev.h mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs_sta.c
debugfs_sta.h
debugfs.c mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs.h
event.c
ieee80211_i.h mac80211: Fix debugfs union misuse and pointer corruption 2008-09-02 17:39:50 -04:00
iface.c mac80211: fix TX sequence numbers 2008-07-14 14:52:57 -04:00
Kconfig mac80211: Reimplement WME using ->select_queue(). 2008-07-17 19:21:12 -07:00
key.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-06-28 01:19:40 -07:00
key.h mac80211: Let drivers have access to TKIP key offets for TX and RX MIC 2008-06-27 09:09:17 -04:00
led.c
led.h
main.c mac80211: keep mesh ifaces in allmulti mode 2008-08-07 09:49:04 -04:00
Makefile mac80211: Reimplement WME using ->select_queue(). 2008-07-17 19:21:12 -07:00
mesh_hwmp.c mac80211: fix use of skb->cb for mesh forwarding 2008-08-07 09:49:04 -04:00
mesh_pathtbl.c mac80211: fix use of skb->cb for mesh forwarding 2008-08-07 09:49:04 -04:00
mesh_plink.c
mesh.c net/mac80211/mesh.c: correct the argument to __mesh_table_free 2008-08-26 20:06:32 -04:00
mesh.h mac80211: fix use of skb->cb for mesh forwarding 2008-08-07 09:49:04 -04: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: quiet chatty IBSS merge message 2008-08-26 20:33:34 -04:00
rate.c
rate.h build algorithms into the mac80211 module 2008-06-30 17:37:34 -04:00
rc80211_pid_algo.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2008-07-14 20:40:34 -07:00
rc80211_pid_debugfs.c
rc80211_pid.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-14 20:23:54 -07:00
rx.c mac80211: fix use of skb->cb for mesh forwarding 2008-08-07 09:49:04 -04:00
sta_info.c mac80211: make master netdev handling sane 2008-07-14 14:30:06 -04:00
sta_info.h mac80211: fix TX sequence numbers 2008-07-14 14:52:57 -04:00
tkip.c mac80211: Let drivers have access to TKIP key offets for TX and RX MIC 2008-06-27 09:09:17 -04:00
tkip.h mac80211: tkip.c consolidate tkip IV writing in helper 2008-06-14 12:18:13 -04:00
tx.c mac80211: fix use of skb->cb for mesh forwarding 2008-08-07 09:49:04 -04:00
util.c mac80211: fix fragmentation kludge 2008-08-01 15:31:33 -04:00
wep.c mac80211: return correct error return from ieee80211_wep_init 2008-07-29 16:55:07 -04:00
wep.h
wext.c mac80211: revamp beacon configuration 2008-07-14 14:30:07 -04:00
wme.c mac80211: Use queue_lock() in ieee80211_ht_agg_queue_remove(). 2008-08-02 23:25:50 -07:00
wme.h mac80211: Reimplement WME using ->select_queue(). 2008-07-17 19:21:12 -07:00
wpa.c mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
wpa.h