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>
2021-03-15 00:45:20 +02:00
..
.gitignore eap_peer: Add .gitignore with *.so 2020-10-16 12:34:16 +03:00
eap.c EAP peer: Make EAP-Success handling more robust against race conditions 2021-03-15 00:45:20 +02:00
eap.h EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_aka.c EAP-AKA: Check that ID message storing succeeds 2021-02-07 23:40:20 +02:00
eap_config.h EAP-TEAP peer: Add support for machine credentials using certificates 2019-09-01 17:19:43 +03:00
eap_eke.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_fast.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_fast_pac.c Use os_memdup() 2017-03-07 13:19:10 +02:00
eap_fast_pac.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
eap_gpsk.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_gtc.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_i.h EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_ikev2.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_leap.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_md5.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_methods.c Replace EapType typedef with enum eap_type 2019-08-17 11:36:20 +03:00
eap_methods.h Replace EapType typedef with enum eap_type 2019-08-17 11:36:20 +03:00
eap_mschapv2.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_otp.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_pax.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_peap.c EAP-PEAP: Key derivation per draft-ietf-emu-tls-eap-types-00 2021-02-20 17:35:51 +02:00
eap_proxy.h eap_proxy: Support multiple SIMs in get_imsi() 2017-06-06 03:42:32 +03:00
eap_proxy_dummy.c eap_proxy: Support multiple SIMs in get_imsi() 2017-06-06 03:42:32 +03:00
eap_psk.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_pwd.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_sake.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_sim.c EAP-SIM peer: Send AT_IDENTITY first 2020-10-30 13:59:49 +02:00
eap_teap.c EAP-TEAP (client): Allow Phase 2 to be skipped if certificate is used 2020-06-20 18:05:46 +03:00
eap_teap_pac.c EAP-TEAP server and peer implementation (RFC 7170) 2019-07-09 16:56:02 +03:00
eap_teap_pac.h EAP-TEAP server and peer implementation (RFC 7170) 2019-07-09 16:56:02 +03:00
eap_tls.c EAP-TLS peer: Handle Commitment Message for TLS 1.3 2021-02-20 17:47:39 +02:00
eap_tls_common.c EAP: Extend Session-Id derivation with TLS 1.3 to PEAP and EAP-TTLS 2021-02-20 17:36:57 +02:00
eap_tls_common.h EAP-TEAP peer: Add support for machine credentials using certificates 2019-09-01 17:19:43 +03:00
eap_tnc.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_ttls.c EAP-TTLS peer: Handle Commitment Message for TLS 1.3 2021-02-20 17:47:41 +02:00
eap_vendor_test.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
eap_wsc.c EAP peer: Convert Boolean to C99 bool 2020-04-24 17:06:50 +03:00
ikev2.c EAP-IKEv2: Try to make transform parser simpler to understand 2020-11-03 21:03:30 +02:00
ikev2.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
Makefile Fix dynamic EAP library building 2021-02-27 23:42:21 +02:00
mschapv2.c EAP-MSCHAPv2: Use os_memcmp_const() for hash/password comparisons 2014-07-02 12:38:48 +03:00
mschapv2.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
tncc.c Clean up base64_{encode,decode} pointer types 2019-11-28 16:39:09 +02:00
tncc.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00