From 16d5c9637c73a23cda4e7835d6c87845e05320c1 Mon Sep 17 00:00:00 2001 From: Srinivas Dasari Date: Mon, 7 May 2018 19:37:08 +0530 Subject: [PATCH] OWE: Get the bss from bssid of assoc_reject to try for next group On an assoc_reject from the BSS with the status=77, a connection attempt with the next supported group happens. The BSS considered here is from current_bss which may be NULL at this point of time with SME-in-driver case. Address this by getting the BSS from the bssid obtained in association reject indication and skip the step if no BSS entry can be found. Signed-off-by: Jouni Malinen --- wpa_supplicant/events.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 9400090cf..b8e0f7b1f 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -4102,6 +4102,15 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event, struct wpa_ssid *ssid = wpa_s->current_ssid; struct wpa_bss *bss = wpa_s->current_bss; + if (!bss) { + const u8 *bssid = data->assoc_reject.bssid; + + if (!bssid || is_zero_ether_addr(bssid)) + bssid = wpa_s->pending_bssid; + bss = wpa_supplicant_get_new_bss(wpa_s, bssid); + if (!bss) + break; + } wpa_printf(MSG_DEBUG, "OWE: Try next supported DH group"); wpas_connect_work_done(wpa_s);