mac80211: fix memory leak
authorEytan Lifshitz <eytan.lifshitz@intel.com>
Thu, 6 Feb 2014 19:01:32 +0000 (21:01 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 11 Feb 2014 11:59:36 +0000 (12:59 +0100)
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>
net/mac80211/mlme.c

index fc1d82465b3ce1b1cdcc9edb4f5157618b70e8ce..57d5482b10fa6cf0ac2c41116fd52fd2b289e4ec 100644 (file)
@@ -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);