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
On 20 July 2015 at 22:14, Marc Murphy <[email protected]> wrote:
> 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:
Please follow
Documentation/SubmittingPatches
Documentation/CodingStyle
(and resend your patch)
You need a clear commit messages, description and use kernel's coding style.