You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hostap/src/eap_peer
Jouni Malinen c733664be9 EAP peer: Make EAP-Success handling more robust against race conditions
When ERP initialization was moved from the METHOD state to the SUCCESS
state, the conditions for checking against EAP state being cleared was
missed. The METHOD state verified that sm->m is not NULL while the
SUCCESS state did not have such a check. This opened a window for a race
condition where processing of deauthentication event and EAPOL RX events
could end up delivering an EAP-Success to the EAP peer state machine
after the state had been cleared. This issue has now been worked around
in another manner, but the root cause for this regression should be
fixed as well.

Check that the EAP state machine is properly configured before trying to
initialize ERP in the SUCCESS state.

Fixes: 2a71673e27 ("ERP: Derive ERP key only after successful EAP authentication")
Signed-off-by: Jouni Malinen <j@w1.fi>
3 years ago
..
.gitignore eap_peer: Add .gitignore with *.so 4 years ago
Makefile Fix dynamic EAP library building 3 years ago
eap.c EAP peer: Make EAP-Success handling more robust against race conditions 3 years ago
eap.h EAP peer: Convert Boolean to C99 bool 4 years ago
eap_aka.c EAP-AKA: Check that ID message storing succeeds 3 years ago
eap_config.h EAP-TEAP peer: Add support for machine credentials using certificates 5 years ago
eap_eke.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_fast.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_fast_pac.c Use os_memdup() 7 years ago
eap_fast_pac.h Remove the GPL notification from files contributed by Jouni Malinen 12 years ago
eap_gpsk.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_gtc.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_i.h EAP peer: Convert Boolean to C99 bool 4 years ago
eap_ikev2.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_leap.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_md5.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_methods.c Replace EapType typedef with enum eap_type 5 years ago
eap_methods.h Replace EapType typedef with enum eap_type 5 years ago
eap_mschapv2.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_otp.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_pax.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_peap.c EAP-PEAP: Key derivation per draft-ietf-emu-tls-eap-types-00 3 years ago
eap_proxy.h eap_proxy: Support multiple SIMs in get_imsi() 7 years ago
eap_proxy_dummy.c eap_proxy: Support multiple SIMs in get_imsi() 7 years ago
eap_psk.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_pwd.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_sake.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_sim.c EAP-SIM peer: Send AT_IDENTITY first 4 years ago
eap_teap.c EAP-TEAP (client): Allow Phase 2 to be skipped if certificate is used 4 years ago
eap_teap_pac.c EAP-TEAP server and peer implementation (RFC 7170) 5 years ago
eap_teap_pac.h EAP-TEAP server and peer implementation (RFC 7170) 5 years ago
eap_tls.c EAP-TLS peer: Handle Commitment Message for TLS 1.3 3 years ago
eap_tls_common.c EAP: Extend Session-Id derivation with TLS 1.3 to PEAP and EAP-TTLS 3 years ago
eap_tls_common.h EAP-TEAP peer: Add support for machine credentials using certificates 5 years ago
eap_tnc.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_ttls.c EAP-TTLS peer: Handle Commitment Message for TLS 1.3 3 years ago
eap_vendor_test.c EAP peer: Convert Boolean to C99 bool 4 years ago
eap_wsc.c EAP peer: Convert Boolean to C99 bool 4 years ago
ikev2.c EAP-IKEv2: Try to make transform parser simpler to understand 4 years ago
ikev2.h Remove the GPL notification from files contributed by Jouni Malinen 12 years ago
mschapv2.c EAP-MSCHAPv2: Use os_memcmp_const() for hash/password comparisons 10 years ago
mschapv2.h Remove the GPL notification from files contributed by Jouni Malinen 12 years ago
tncc.c Clean up base64_{encode,decode} pointer types 5 years ago
tncc.h Remove the GPL notification from files contributed by Jouni Malinen 12 years ago