From e81634cd1802e14b061c6c3672529a862ba19189 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 15 Oct 2009 21:58:58 +0300 Subject: [PATCH] Skip networks without known SSID when selecting the BSS 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 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 16f8b62a6..1875be98e 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -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;