aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/sta_info.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-03-31 13:23:00 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-04-01 17:14:09 -0400
commit97bff8ecf4e4e26749a67dcfbb7565d8a0f4acb4 (patch)
tree1aecc15d8fa842af2b26edd1a68a713ae0008d57 /net/mac80211/sta_info.c
parent9dd6aed05b8859265cd79f1e47e4f844bbe1548b (diff)
mac80211: fix sta_info_destroy(NULL)
sta_info_destroy(NULL) should be valid, but currently isn't because the argument is dereferenced before the NULL check. There are no users that currently pass in NULL, i.e. all check before calling the function, but I want to change that. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/sta_info.c')
-rw-r--r--net/mac80211/sta_info.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index f708367092d1..2a5a2f067bae 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -129,16 +129,18 @@ struct sta_info *sta_info_get_by_idx(struct ieee80211_local *local, int idx,
129 129
130void sta_info_destroy(struct sta_info *sta) 130void sta_info_destroy(struct sta_info *sta)
131{ 131{
132 struct ieee80211_local *local = sta->local; 132 struct ieee80211_local *local;
133 struct sk_buff *skb; 133 struct sk_buff *skb;
134 int i; 134 int i;
135 DECLARE_MAC_BUF(mbuf); 135 DECLARE_MAC_BUF(mbuf);
136 136
137 ASSERT_RTNL();
138 might_sleep();
139
137 if (!sta) 140 if (!sta)
138 return; 141 return;
139 142
140 ASSERT_RTNL(); 143 local = sta->local;
141 might_sleep();
142 144
143 rate_control_remove_sta_debugfs(sta); 145 rate_control_remove_sta_debugfs(sta);
144 ieee80211_sta_debugfs_remove(sta); 146 ieee80211_sta_debugfs_remove(sta);