<div>Previous CL &#39;Fix REMOVE_NETWORK to not run operations with invalid</div><div>current_ssid&#39; fixed this issue for &#39;removing a network&#39;, and we also need to</div><div>take care of &#39;removing all networks&#39;.</div>
<div><br></div><div>Signed-hostap: Jaewan Kim &lt;jaewan at <a href="http://google.com">google.com</a>&gt;</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: &quot;&lt;network id&gt;&quot; or &quot;all&quot; */</div>
<div>        if (os_strcmp(cmd, &quot;all&quot;) == 0) {</div><div>                wpa_printf(MSG_DEBUG, &quot;CTRL_IFACE: REMOVE_NETWORK all&quot;);</div><div>-               ssid = wpa_s-&gt;conf-&gt;ssid;</div><div>-               while (ssid) {</div>
<div>-                       struct wpa_ssid *remove_ssid = ssid;</div><div>-                       id = ssid-&gt;id;</div><div>-                       ssid = ssid-&gt;next;</div><div>-                       wpas_notify_network_removed(wpa_s, remove_ssid);</div>
<div>-                       wpa_config_remove_network(wpa_s-&gt;conf, id);</div><div>-               }</div><div>                eapol_sm_invalidate_cached_session(wpa_s-&gt;eapol);</div><div>                if (wpa_s-&gt;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-&gt;conf-&gt;ssid;</div><div>+               while (ssid) {</div><div>+                       struct wpa_ssid *remove_ssid = ssid;</div><div>+                       id = ssid-&gt;id;</div>
<div>+                       ssid = ssid-&gt;next;</div><div>+                       wpas_notify_network_removed(wpa_s, remove_ssid);</div><div>+                       wpa_config_remove_network(wpa_s-&gt;conf, id);</div><div>
+               }</div><div>                return 0;</div><div>        }</div></div><div><br></div>