mac80211: fix BSS leak
The IBSS code leaks a BSS struct after telling cfg80211 about a given BSS by passing a frame. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
227206455f
commit
f446d10f21
|
@ -73,6 +73,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
||||||
struct ieee80211_mgmt *mgmt;
|
struct ieee80211_mgmt *mgmt;
|
||||||
u8 *pos;
|
u8 *pos;
|
||||||
struct ieee80211_supported_band *sband;
|
struct ieee80211_supported_band *sband;
|
||||||
|
struct cfg80211_bss *bss;
|
||||||
u32 bss_change;
|
u32 bss_change;
|
||||||
u8 supp_rates[IEEE80211_MAX_SUPP_RATES];
|
u8 supp_rates[IEEE80211_MAX_SUPP_RATES];
|
||||||
|
|
||||||
|
@ -177,8 +178,9 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
||||||
mod_timer(&ifibss->timer,
|
mod_timer(&ifibss->timer,
|
||||||
round_jiffies(jiffies + IEEE80211_IBSS_MERGE_INTERVAL));
|
round_jiffies(jiffies + IEEE80211_IBSS_MERGE_INTERVAL));
|
||||||
|
|
||||||
cfg80211_inform_bss_frame(local->hw.wiphy, local->hw.conf.channel,
|
bss = cfg80211_inform_bss_frame(local->hw.wiphy, local->hw.conf.channel,
|
||||||
mgmt, skb->len, 0, GFP_KERNEL);
|
mgmt, skb->len, 0, GFP_KERNEL);
|
||||||
|
cfg80211_put_bss(bss);
|
||||||
cfg80211_ibss_joined(sdata->dev, ifibss->bssid, GFP_KERNEL);
|
cfg80211_ibss_joined(sdata->dev, ifibss->bssid, GFP_KERNEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue