mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 07:01:32 +00:00
mac80211: fix an oops in several failure paths in key allocation
This patch fixes an oops in several failure paths in key allocation. This Oops occurs when freeing a key that has not been linked yet, so the key->sdata is not set. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
5f4a6fae46
commit
00eb7fe77e
@ -380,6 +380,15 @@ void ieee80211_key_free(struct ieee80211_key *key)
|
||||
if (!key)
|
||||
return;
|
||||
|
||||
if (!key->sdata) {
|
||||
/* The key has not been linked yet, simply free it
|
||||
* and don't Oops */
|
||||
if (key->conf.alg == ALG_CCMP)
|
||||
ieee80211_aes_key_free(key->u.ccmp.tfm);
|
||||
kfree(key);
|
||||
return;
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&key->sdata->local->key_lock, flags);
|
||||
__ieee80211_key_free(key);
|
||||
spin_unlock_irqrestore(&key->sdata->local->key_lock, flags);
|
||||
|
Loading…
Reference in New Issue
Block a user