]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Skip networks without known SSID when selecting the BSS
authorJouni Malinen <jouni.malinen@atheros.com>
Thu, 15 Oct 2009 18:58:58 +0000 (21:58 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 15 Oct 2009 18:58:58 +0000 (21:58 +0300)
Previously, APs that were hiding SSID (zero-length SSID IE in
Beacon frames) could have been selected when wildcard SSID matching
was used. This would result in failed association attempt since
the client does not know the correct SSID. This can slow down WPS
which is often using wildcard SSID matching.

Ignore BSSes without known SSID in the scan results when selecting
which BSS to use.

wpa_supplicant/events.c

index 16f8b62a6edf7511e2fda3d29dfc65bf7963126e..1875be98e770ef072052556e42fa25e4c5bdabb3 100644 (file)
@@ -427,6 +427,11 @@ wpa_supplicant_select_bss_wpa(struct wpa_supplicant *wpa_s,
                        continue;
                }
 
+               if (ssid_len == 0) {
+                       wpa_printf(MSG_DEBUG, "   skip - SSID not known");
+                       continue;
+               }
+
                if (wpa_ie_len == 0 && rsn_ie_len == 0) {
                        wpa_printf(MSG_DEBUG, "   skip - no WPA/RSN IE");
                        continue;
@@ -517,6 +522,11 @@ wpa_supplicant_select_bss_non_wpa(struct wpa_supplicant *wpa_s,
                        continue;
                }
 
+               if (ssid_len == 0) {
+                       wpa_printf(MSG_DEBUG, "   skip - SSID not known");
+                       continue;
+               }
+
                for (ssid = group; ssid; ssid = ssid->pnext) {
                        int check_ssid = ssid->ssid_len != 0;