From a54fa5fb807eaeff45464139b5a7759f060cec68 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Tue, 15 Jan 2013 13:53:35 -0800 Subject: Accumulative patch from commit dc013f1e37df3462085cf01a13f0c432f146ad7a Author: Jouni Malinen Date: Tue Jan 15 12:03:29 2013 +0200 eapol_test: Remove unnecessary header file inclusion - P2P: Send P2P-FIND-STOPPED event in the new continue-search states - P2P: Add some more details on Service Query TLV format - P2P: Use the same Dialog Token value for every GO Negotiation retry - P2P: Publish more connected clients info in Probe Response frames - P2P: Fix some memory leaks in p2p_add_device() - P2P: Use the same Dialog Token value for every PD retry - P2P: Document operating channel selection functions - P2P: Always re-select operating channel if not hard coded - P2P: Do not allow re-selection of GO channel if forced_freq in use - P2P: Set FORCE_FREQ flag as part of p2p_prepare_channel() - P2P: Share a single function for GO channel selection - P2P: Prefer operating channels where HT40 is possible - P2P: Be more careful with wpa_config_update_psk() call - P2P: Allow PSK to be used instead of passphrase for persistent GO - P2P: Consider age for the P2P scan results - Move some P2P offchannel operations to offchannel.c - P2P: Add more complete description of p2p_cancel - P2P: Allow p2p_cancel to be used to stop p2p_connect-join operation - Interworking changes - WNM changes - WPS changes - SAE changes Change-Id: I38b847d3460066cc58aecbcf67266bfcff1d344e Signed-off-by: Dmitry Shmidt --- src/eap_server/eap_server_aka.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/eap_server') diff --git a/src/eap_server/eap_server_aka.c b/src/eap_server/eap_server_aka.c index 177b58da..469b9a0f 100644 --- a/src/eap_server/eap_server_aka.c +++ b/src/eap_server/eap_server_aka.c @@ -731,6 +731,17 @@ static void eap_aka_determine_identity(struct eap_sm *sm, return; } + if (((data->eap_method == EAP_TYPE_AKA_PRIME && + username[0] == EAP_AKA_PRIME_REAUTH_ID_PREFIX) || + (data->eap_method == EAP_TYPE_AKA && + username[0] == EAP_AKA_REAUTH_ID_PREFIX)) && + data->identity_round == 1) { + /* Remain in IDENTITY state for another round to request full + * auth identity since we did not recognize reauth id */ + os_free(username); + return; + } + if ((data->eap_method == EAP_TYPE_AKA_PRIME && username[0] == EAP_AKA_PRIME_PSEUDONYM_PREFIX) || (data->eap_method == EAP_TYPE_AKA && -- cgit v1.2.3