WPS: Fix BSSID filter handling

If WPS commands are used with a specific BSSID instead of wildcard,
the BSSID that was supposed to be used only for the provisioning step
may end up getting copied to the network block that gets provisioned
based on the WPS credentials. Fix this by clearing ssid->bssid_set
when creating the network block by replacing the block used for WPS
provisioning.

This issue could show up with the provisioned network not getting
selected properly with APs that have multiple radios. Depending on
the driver, this could result in only a single one of the available
BSSes being available or the connection failing completely.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
intended-for: hostap-1
This commit is contained in:
Jouni Malinen 2012-05-11 13:29:43 +03:00 committed by Jouni Malinen
parent ec4a5d32b1
commit 2c1e557507

View file

@ -263,6 +263,7 @@ static int wpa_supplicant_wps_cred(void *ctx,
ssid->eap.eap_methods = NULL; ssid->eap.eap_methods = NULL;
if (!ssid->p2p_group) if (!ssid->p2p_group)
ssid->temporary = 0; ssid->temporary = 0;
ssid->bssid_set = 0;
} else { } else {
wpa_printf(MSG_DEBUG, "WPS: Create a new network based on the " wpa_printf(MSG_DEBUG, "WPS: Create a new network based on the "
"received credential"); "received credential");