P2P: Do not accept any GO BSS entry if SSID is specified for join

Accept only a BSS entry matching the SSID when trying to find the
operating channel of a GO during join operation for which the SSID was
already specified. Previously, it could have been possible to pick an
incorrect BSS entry if the new GO was not found in the latest scan and
there was an older cached scan entry for the same BSSID.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2015-12-30 19:06:19 +02:00 committed by Jouni Malinen
parent 35510d530a
commit 438be60153

View file

@ -4825,8 +4825,7 @@ static void wpas_p2p_scan_res_join(struct wpa_supplicant *wpa_s,
bss = wpa_bss_get(wpa_s, wpa_s->pending_join_iface_addr, bss = wpa_bss_get(wpa_s, wpa_s->pending_join_iface_addr,
wpa_s->p2p_join_ssid, wpa_s->p2p_join_ssid,
wpa_s->p2p_join_ssid_len); wpa_s->p2p_join_ssid_len);
} } else if (!bss) {
if (!bss) {
wpa_printf(MSG_DEBUG, "P2P: Trying to find target GO BSS entry based on BSSID " wpa_printf(MSG_DEBUG, "P2P: Trying to find target GO BSS entry based on BSSID "
MACSTR, MAC2STR(wpa_s->pending_join_iface_addr)); MACSTR, MAC2STR(wpa_s->pending_join_iface_addr));
bss = wpa_bss_get_bssid_latest(wpa_s, bss = wpa_bss_get_bssid_latest(wpa_s,