From e8d43b03a1c73595cb1a7fb64eef799411aaba30 Mon Sep 17 00:00:00 2001 From: Shreyas Sheth Date: Thu, 24 Aug 2023 18:56:09 +0530 Subject: [PATCH] fix(wifi): wpa3 softap fix deauth when assoc req recv before sae is finished --- components/esp_wifi/lib | 2 +- .../wpa_supplicant/esp_supplicant/src/esp_wpa_main.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index ee1f0c4332..fbe999ab68 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit ee1f0c43328754e64f43803fc532faaba489d3f4 +Subproject commit fbe999ab688618498ee98b1569c23ed11c8889ce diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c b/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c index 8d80783654..6f3c69110f 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c @@ -321,12 +321,15 @@ static bool hostap_sta_join(void **sta, u8 *bssid, u8 *wpa_ie, u8 wpa_ie_len,u8 sta_info = ap_sta_add(hapd, bssid); if (!sta_info) { wpa_printf(MSG_ERROR, "failed to add station " MACSTR, MAC2STR(bssid)); - return false; + goto fail; } #ifdef CONFIG_SAE if (sta_info->lock && os_semphr_take(sta_info->lock, 0) != TRUE) { wpa_printf(MSG_INFO, "Ignore assoc request as softap is busy with sae calculation for station "MACSTR, MAC2STR(bssid)); + if (esp_send_assoc_resp(hapd, sta_info, bssid, WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY, rsnxe ? false : true, subtype) != WLAN_STATUS_SUCCESS) { + goto fail; + } return false; } #endif /* CONFIG_SAE */ @@ -357,10 +360,7 @@ static bool hostap_sta_join(void **sta, u8 *bssid, u8 *wpa_ie, u8 wpa_ie_len,u8 } fail: - if (sta_info) { - ap_free_sta(hapd, sta_info); - } - + esp_wifi_ap_deauth_internal(bssid, WLAN_REASON_PREV_AUTH_NOT_VALID); return false; } #endif