From a1836de64b379ea6eb1a50498a803571a74181f6 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sun, 11 Dec 2016 18:23:13 +0200 Subject: [PATCH] SME: Fix IBSS setup after shared key/FT/FILS association wpa_s->sme.auth_alg could have been left to a previously value other than WPA_AUTH_ALG_OPEN if IBSS network is used after an association that used shared key, FT, or FILS authentication algorithm. This could result in the IBSS setup failing due to incorrect authentication processing steps. Fix this by setting wpa_s->sme.auth_alg = WPA_AUTH_ALG_OPEN whenever starting an IBSS (or mesh, for that matter) network. Signed-off-by: Jouni Malinen --- wpa_supplicant/wpa_supplicant.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 0bfc39ddb..330b52ee4 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -1798,6 +1798,13 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s, return; } +#ifdef CONFIG_SME + if (ssid->mode == WPAS_MODE_IBSS || ssid->mode == WPAS_MODE_MESH) { + /* Clear possibly set auth_alg, if any, from last attempt. */ + wpa_s->sme.auth_alg = WPA_AUTH_ALG_OPEN; + } +#endif /* CONFIG_SME */ + wpas_abort_ongoing_scan(wpa_s); cwork = os_zalloc(sizeof(*cwork));