<div>Previous CL 'Fix REMOVE_NETWORK to not run operations with invalid</div><div>current_ssid' fixed this issue for 'removing a network', and we also need to</div><div>take care of 'removing all networks'.</div>
<div><br></div><div>Signed-hostap: Jaewan Kim <jaewan at <a href="http://google.com">google.com</a>></div><div><div><br></div><div>diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c</div><div>index ecafc6c..33deacc 100644</div>
<div>--- a/wpa_supplicant/ctrl_iface.c</div><div>+++ b/wpa_supplicant/ctrl_iface.c</div><div>@@ -2108,14 +2108,6 @@ static int wpa_supplicant_ctrl_iface_remove_network(</div><div> /* cmd: "<network id>" or "all" */</div>
<div> if (os_strcmp(cmd, "all") == 0) {</div><div> wpa_printf(MSG_DEBUG, "CTRL_IFACE: REMOVE_NETWORK all");</div><div>- ssid = wpa_s->conf->ssid;</div><div>- while (ssid) {</div>
<div>- struct wpa_ssid *remove_ssid = ssid;</div><div>- id = ssid->id;</div><div>- ssid = ssid->next;</div><div>- wpas_notify_network_removed(wpa_s, remove_ssid);</div>
<div>- wpa_config_remove_network(wpa_s->conf, id);</div><div>- }</div><div> eapol_sm_invalidate_cached_session(wpa_s->eapol);</div><div> if (wpa_s->current_ssid) {</div>
<div> #ifdef CONFIG_SME</div><div>@@ -2126,6 +2118,14 @@ static int wpa_supplicant_ctrl_iface_remove_network(</div><div> wpa_supplicant_deauthenticate(</div><div> wpa_s, WLAN_REASON_DEAUTH_LEAVING);</div>
<div> }</div><div>+ ssid = wpa_s->conf->ssid;</div><div>+ while (ssid) {</div><div>+ struct wpa_ssid *remove_ssid = ssid;</div><div>+ id = ssid->id;</div>
<div>+ ssid = ssid->next;</div><div>+ wpas_notify_network_removed(wpa_s, remove_ssid);</div><div>+ wpa_config_remove_network(wpa_s->conf, id);</div><div>
+ }</div><div> return 0;</div><div> }</div></div><div><br></div>