From 5a17c2275fc2cae840d7bff04b009be2e18329f4 Mon Sep 17 00:00:00 2001 From: Andrew Zaborowski Date: Thu, 15 Mar 2018 12:06:54 +0100 Subject: [PATCH] eapol: Make sure rsn_info is initialized in eapol_handle_ptk_1_of_4 After an EAP exchange rsn_info would be uninitialized and in the FT case we'd use it to generate the step 2 IEs which would cause an RSNE mismatch during FT handshake. --- src/eapol.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/eapol.c b/src/eapol.c index 5989bfcb..e839f08a 100644 --- a/src/eapol.c +++ b/src/eapol.c @@ -953,6 +953,8 @@ static void eapol_handle_ptk_1_of_4(struct eapol_sm *sm, pmkid = handshake_util_find_pmkid_kde(ek->key_data, L_BE16_TO_CPU(ek->key_data_len)); + ie_parse_rsne_from_data(own_ie, own_ie[1] + 2, &rsn_info); + /* * Require the PMKID KDE whenever we've sent a list of PMKIDs in * our RSNE and we've haven't seen any EAPOL-EAP frame since @@ -962,8 +964,6 @@ static void eapol_handle_ptk_1_of_4(struct eapol_sm *sm, * send no PMKID KDE. */ if (!sm->eap_exchanged && !sm->handshake->wpa_ie && - ie_parse_rsne_from_data(own_ie, own_ie[1] + 2, - &rsn_info) >= 0 && rsn_info.num_pmkids) { bool found = false; int i;