WPS: Disconnect when removing existing WPS network block

wpas_clear_wps() was just clearing the current wpa_s->current_ssid
pointer when removing a WPS network block which with the device was
associated. This could leave the association up even though the network
block had already been removed. Prevent this by explicitly disconnecting
from the network instead of such clearing current_ssid.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Junli Zhao 2013-07-08 12:09:18 +03:00 committed by Jouni Malinen
parent fe65847bb1
commit c7a67a7719

View file

@ -868,9 +868,8 @@ static void wpas_clear_wps(struct wpa_supplicant *wpa_s)
while (ssid) {
if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) {
if (ssid == wpa_s->current_ssid) {
wpa_s->current_ssid = NULL;
if (ssid != NULL)
wpas_notify_network_changed(wpa_s);
wpa_supplicant_deauthenticate(
wpa_s, WLAN_REASON_DEAUTH_LEAVING);
}
id = ssid->id;
remove_ssid = ssid;