I have been looking at an issue with WPA/WPA2 and joining a specific Access 
Point SSID that also has a hidden SSID available.  This was with 3.14.47 kernel 
but it is also present in all 3.x kernels.
When the AP's are being scanned it there is a warning generated stating that 
the bssid is empty yet when you inspect what is actually happening in the code 
it is because there is an SSID string but its length is 0 so it fails to return 
when it should.

in net/wireless/scan.c there is a function is_bss that should return the 
cfg80211_bss struct when it finds the matching details.  When the bssid is 
found but the SSID is empty (valid string "" but with length of 0) it passes 
through when it should return as the bssid matches.

Patch is as follows:

--- net/wireless/scan.orig.c    2015-07-20 20:56:00.437994441 +0100
+++ net/wireless/scan.c 2015-07-20 20:57:45.473715000 +0100
@@ -401,7 +401,7 @@
        if (bssid && !ether_addr_equal(a->bssid, bssid))
                return false;

-       if (!ssid)
+       if ( (!ssid) || (!ssid_len) )
                return true;

        ies = rcu_access_pointer(a->ies);


Kind Regards
Marc
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to