aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasashi Honma <masashi.honma@gmail.com>2019-01-15 11:43:41 (GMT)
committerJouni Malinen <j@w1.fi>2019-01-21 21:43:12 (GMT)
commit3e949655ccc5fba4686d04c70380463ebf059b30 (patch)
tree318bd2cfd7ff522051c9024f43d7d8a4f8545bcb
parent9758b08bcf9acb98db2db8a1407b5546d44f907b (diff)
downloadhostap-master.zip
hostap-master.tar.gz
hostap-master.tar.bz2
Revert "mesh: Apply channel attributes before setup interface"HEADpendingmaster
This reverts commit 2564184440d9d6041d11a8c7d50b31368634c3bd. Commit 2564184440d9 ("mesh: Apply channel attributes before setup interface") triggers some channel configurations to result in leaking memory. This seems to be caused by hapd->started not getting set when going through a callback to start hostapd operation (e.g., when using HT40 coex scan) due to hostapd_setup_bss() not getting called. This results in hostapd_free_hapd_data() not clearing allocated hapd->wpa_auth. This can be reproduced with the hwsim test case mesh_secure_ocv_mix_legacy. A more complete cleanup of the pending mesh patch for DFS support seems to be needed to fix this properly, so the best approach for now is to revert this patch and bring it back once rest of the mesh changes are ready to be applied. Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
-rw-r--r--wpa_supplicant/mesh.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c
index dd6aad6..e9457f0 100644
--- a/wpa_supplicant/mesh.c
+++ b/wpa_supplicant/mesh.c
@@ -251,7 +251,7 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
struct mesh_conf *mconf;
int basic_rates_erp[] = { 10, 20, 55, 60, 110, 120, 240, -1 };
int rate_len;
- int frequency, saved_freq;
+ int frequency;
if (!wpa_s->conf->user_mpm) {
/* not much for us to do here */
@@ -383,13 +383,6 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
conf->basic_rates[rate_len] = -1;
}
- /* Handle pri/sec switch frequency within AP configuration parameter
- * generation without changing the stored network profile in the end. */
- saved_freq = ssid->frequency;
- ssid->frequency = frequency;
- wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
- ssid->frequency = saved_freq;
-
if (wpa_drv_init_mesh(wpa_s)) {
wpa_msg(wpa_s, MSG_ERROR, "Failed to init mesh in driver");
return -1;
@@ -401,6 +394,8 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
return -1;
}
+ wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
+
return 0;
out_free:
wpa_supplicant_mesh_deinit(wpa_s);