On Mon, 25 Sep 2006 15:35:34 +0200, Savin Zlobec wrote:
> while testing the rt2x00 driver I've found a
> problem in d80211 stack which results in kernel panic.
> I experienced kernel panic every time I unloaded the
> rt2x00 driver module after associating with my AP.
>
> The problem traced down to sta_info_proc_add_task
> being called with local->deleted_sta_list != empty
> and local->sta_list == empty which resulted in
> a call to ieee80211_sta_sysfs_add with a bogus sta.
>
> Attached is a fix for the mentioned case.
Thanks for the patch!
I think this is a slightly better fix for the problem:
---
Subject: [PATCH] d80211: fix invalid pointer dereference
When deleted_sta_list is nonempty and sta_list is empty in
sta_info_proc_add_task, an invalid sta pointer was dereferenced.
Signed-off-by: Jiri Benc <[EMAIL PROTECTED]>
---
net/d80211/sta_info.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
--- dscape.orig/net/d80211/sta_info.c
+++ dscape/net/d80211/sta_info.c
@@ -354,13 +354,14 @@ static void sta_info_proc_add_task(void
}
while (1) {
+ sta = NULL;
spin_lock_bh(&local->sta_lock);
- list_for_each_entry_safe(sta, tmp, &local->sta_list, list) {
- if (!sta->sysfs_registered) {
+ list_for_each_entry(tmp, &local->sta_list, list) {
+ if (!tmp->sysfs_registered) {
+ sta = tmp;
__sta_info_get(sta);
break;
}
- sta = NULL;
}
spin_unlock_bh(&local->sta_lock);
--
Jiri Benc
SUSE Labs
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html