* [PATCH] mac80211: always insert key into list
@ 2008-03-01 18:32 Johannes Berg
2008-03-01 18:57 ` drago01
0 siblings, 1 reply; 3+ messages in thread
From: Johannes Berg @ 2008-03-01 18:32 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless
Today I hit one of my new WARN_ONs in the mac80211 code because
a key wasn't being freed correctly. After wondering for a while
I finally tracked it to the fact that STA keys aren't added to
the per-sdata key list correctly, they are supposed to always be
on that list, not just for default keys. This patch fixes that.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
John, please merge soon, the ultimate consequence of this bug is that
when trying to delete everything mac80211 segfaults with an access to
already freed memory because the key is freed but still thought to
belong to a STA.
net/mac80211/key.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- everything.orig/net/mac80211/key.c 2008-03-01 19:28:56.000000000 +0100
+++ everything/net/mac80211/key.c 2008-03-01 19:29:00.000000000 +0100
@@ -174,6 +174,9 @@ static void __ieee80211_key_replace(stru
{
int idx, defkey;
+ if (new)
+ list_add(&new->list, &sdata->key_list);
+
if (sta) {
rcu_assign_pointer(sta->key, new);
} else {
@@ -190,9 +193,6 @@ static void __ieee80211_key_replace(stru
ieee80211_set_default_key(sdata, -1);
rcu_assign_pointer(sdata->keys[idx], new);
- if (new)
- list_add(&new->list, &sdata->key_list);
-
if (defkey && new)
ieee80211_set_default_key(sdata, new->conf.keyidx);
}
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] mac80211: always insert key into list
2008-03-01 18:32 [PATCH] mac80211: always insert key into list Johannes Berg
@ 2008-03-01 18:57 ` drago01
2008-03-01 20:56 ` Johannes Berg
0 siblings, 1 reply; 3+ messages in thread
From: drago01 @ 2008-03-01 18:57 UTC (permalink / raw)
To: Johannes Berg; +Cc: John Linville, linux-wireless
On Sat, Mar 1, 2008 at 7:32 PM, Johannes Berg <johannes@sipsolutions.net> wrote:
> Today I hit one of my new WARN_ONs in the mac80211 code because
> a key wasn't being freed correctly. After wondering for a while
> I finally tracked it to the fact that STA keys aren't added to
> the per-sdata key list correctly, they are supposed to always be
> on that list, not just for default keys. This patch fixes that.
can this be somehow related to the "wep decrypt failed" message that I
get when using dynamic wep?
(I didn't have time to create any additional debug info for it yet ...)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mac80211: always insert key into list
2008-03-01 18:57 ` drago01
@ 2008-03-01 20:56 ` Johannes Berg
0 siblings, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2008-03-01 20:56 UTC (permalink / raw)
To: drago01; +Cc: John Linville, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 701 bytes --]
On Sat, 2008-03-01 at 19:57 +0100, drago01 wrote:
> On Sat, Mar 1, 2008 at 7:32 PM, Johannes Berg <johannes@sipsolutions.net> wrote:
> > Today I hit one of my new WARN_ONs in the mac80211 code because
> > a key wasn't being freed correctly. After wondering for a while
> > I finally tracked it to the fact that STA keys aren't added to
> > the per-sdata key list correctly, they are supposed to always be
> > on that list, not just for default keys. This patch fixes that.
>
> can this be somehow related to the "wep decrypt failed" message that I
> get when using dynamic wep?
> (I didn't have time to create any additional debug info for it yet ...)
No, not at all.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-03-01 20:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-01 18:32 [PATCH] mac80211: always insert key into list Johannes Berg
2008-03-01 18:57 ` drago01
2008-03-01 20:56 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox