diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 8ac58d5636..acbfd4bc9a 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 8ac58d5636c1218577583705a76d765a385b2f6d +Subproject commit acbfd4bc9ad91aed497d466828edb6f890873dac diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h index 02afd3c223..a8922200af 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h @@ -274,5 +274,6 @@ bool esp_wifi_is_mbo_enabled_internal(uint8_t if_index); uint8_t esp_wifi_sta_get_config_sae_pwe_h2e_internal(void); uint8_t esp_wifi_sta_get_use_h2e_internal(void); void esp_wifi_sta_disable_wpa2_authmode_internal(void); +bool esp_wifi_eb_tx_status_success_internal(void *eb); #endif /* _ESP_WIFI_DRIVER_H_ */ diff --git a/components/wpa_supplicant/src/rsn_supp/wpa.c b/components/wpa_supplicant/src/rsn_supp/wpa.c index 39467f8a2a..89cabce880 100644 --- a/components/wpa_supplicant/src/rsn_supp/wpa.c +++ b/components/wpa_supplicant/src/rsn_supp/wpa.c @@ -2649,6 +2649,12 @@ void eapol_txcb(void *eb) case WPA_FIRST_HALF_4WAY_HANDSHAKE: break; case WPA_LAST_HALF_4WAY_HANDSHAKE: + + if (esp_wifi_eb_tx_status_success_internal(eb) != true) { + wpa_printf(MSG_ERROR, "Eapol message 4/4 tx failure, not installing keys"); + return; + } + if (sm->txcb_flags & WPA_4_4_HANDSHAKE_BIT) { sm->txcb_flags &= ~WPA_4_4_HANDSHAKE_BIT; isdeauth = wpa_supplicant_send_4_of_4_txcallback(sm);