]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Drop connection attempt if network is disabled before radio work starts
authorHu Wang <huw@qti.qualcomm.com>
Mon, 10 Aug 2015 19:12:59 +0000 (22:12 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 10 Aug 2015 19:16:19 +0000 (22:16 +0300)
With the radio work design, it is possible for a network entry to get
disabled (e.g., DISABLE_NETWORK <id>) during the time the connect or
sme-connect radio work waits to start. Previously, only the validity of
the BSS entry and BSSID/SSID was verified when starting the actual
connection step. Add call to wpas_network_disabled() to those checks to
catch the case where the network profile is disabled.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/sme.c
wpa_supplicant/wpa_supplicant.c

index d945db7f7a31cf3a9c9ea2478d3ebe51e0bce769..54bb6c948fc69e37c591198993bfae75d84e3fd3 100644 (file)
@@ -598,7 +598,8 @@ static void sme_auth_start_cb(struct wpa_radio_work *work, int deinit)
        wpa_s->connect_work = work;
 
        if (cwork->bss_removed ||
-           !wpas_valid_bss_ssid(wpa_s, cwork->bss, cwork->ssid)) {
+           !wpas_valid_bss_ssid(wpa_s, cwork->bss, cwork->ssid) ||
+           wpas_network_disabled(wpa_s, cwork->ssid)) {
                wpa_dbg(wpa_s, MSG_DEBUG, "SME: BSS/SSID entry for authentication not valid anymore - drop connection attempt");
                wpas_connect_work_done(wpa_s);
                return;
index 277265e8fb09da7357c9ce472e0f92965300cbbd..816d5220a46eda37cdea1f27f0eee49cb6f9d803 100644 (file)
@@ -1967,7 +1967,8 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
 
        wpa_s->connect_work = work;
 
-       if (cwork->bss_removed || !wpas_valid_bss_ssid(wpa_s, bss, ssid)) {
+       if (cwork->bss_removed || !wpas_valid_bss_ssid(wpa_s, bss, ssid) ||
+           wpas_network_disabled(wpa_s, ssid)) {
                wpa_dbg(wpa_s, MSG_DEBUG, "BSS/SSID entry for association not valid anymore - drop connection attempt");
                wpas_connect_work_done(wpa_s);
                return;