From bf07e0534947a9b793be5a4295c13b10b2ca6977 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Wed, 9 Sep 2015 21:34:36 +0300 Subject: [PATCH] ERP: Do not pass full EAP header to eap_peer_erp_reauth_start() That function does not need the full EAP header -- it only needs to know which EAP identifier to use in the message. Make this usable for cases where the previous EAP message may not exist (FILS). Signed-off-by: Jouni Malinen --- src/eap_peer/eap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/eap_peer/eap.c b/src/eap_peer/eap.c index 9110ca5b9..9af1fff8a 100644 --- a/src/eap_peer/eap.c +++ b/src/eap_peer/eap.c @@ -571,8 +571,7 @@ fail: #ifdef CONFIG_ERP -static int eap_peer_erp_reauth_start(struct eap_sm *sm, - const struct eap_hdr *hdr, size_t len) +static int eap_peer_erp_reauth_start(struct eap_sm *sm, u8 eap_id) { char *realm; struct eap_erp_key *erp; @@ -599,7 +598,7 @@ static int eap_peer_erp_reauth_start(struct eap_sm *sm, msg = eap_msg_alloc(EAP_VENDOR_IETF, (EapType) EAP_ERP_TYPE_REAUTH, 1 + 2 + 2 + os_strlen(erp->keyname_nai) + 1 + 16, - EAP_CODE_INITIATE, hdr->identifier); + EAP_CODE_INITIATE, eap_id); if (msg == NULL) return -1; @@ -1566,7 +1565,7 @@ static void eap_peer_initiate(struct eap_sm *sm, const struct eap_hdr *hdr, /* TODO: Derivation of domain specific keys for local ER */ } - if (eap_peer_erp_reauth_start(sm, hdr, len) == 0) + if (eap_peer_erp_reauth_start(sm, hdr->identifier) == 0) return; invalid: