summaryrefslogtreecommitdiffstats
path: root/freebsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c')
-rw-r--r--freebsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/freebsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c b/freebsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c
index e633d7c1..938e0d05 100644
--- a/freebsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c
+++ b/freebsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c
@@ -316,6 +316,16 @@ SM_STATE(SUPP_PAE, RESTART)
{
SM_ENTRY(SUPP_PAE, RESTART);
sm->eapRestart = TRUE;
+ if (sm->altAccept) {
+ /*
+ * Prevent EAP peer state machine from failing due to prior
+ * external EAP success notification (altSuccess=TRUE in the
+ * IDLE state could result in a transition to the FAILURE state.
+ */
+ wpa_printf(MSG_DEBUG, "EAPOL: Clearing prior altAccept TRUE");
+ sm->eapSuccess = FALSE;
+ sm->altAccept = FALSE;
+ }
}