diff options
author | Eytan Lifshitz <eytan.lifshitz@intel.com> | 2014-02-06 21:01:32 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-02-11 12:59:36 +0100 |
commit | c368ddaa9ad79fdffde4756804321feba6725c75 (patch) | |
tree | 4a4650b8ad03ee14e8211d0b7a2dc0ed341a2970 /net/mac80211 | |
parent | 32769814d54a5a360b83811b4039c776ec953c71 (diff) | |
download | op-kernel-dev-c368ddaa9ad79fdffde4756804321feba6725c75.zip op-kernel-dev-c368ddaa9ad79fdffde4756804321feba6725c75.tar.gz |
mac80211: fix memory leak
In case ieee80211_prep_connection() fails to dereference
sdata->vif.chanctx_conf, the function returns and doesn't
free new_sta. fixed.
Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/mlme.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index fc1d824..57d5482 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -3753,6 +3753,7 @@ static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata, chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); + sta_info_free(local, new_sta); return -EINVAL; } rate_flags = ieee80211_chandef_rate_flags(&chanctx_conf->def); |