3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-22 13:02:44 +01:00

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.
This commit is contained in:
Andrew Zaborowski 2018-03-15 12:06:54 +01:00 committed by Denis Kenzior
parent 8b534ba067
commit 5a17c2275f

View File

@ -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, pmkid = handshake_util_find_pmkid_kde(ek->key_data,
L_BE16_TO_CPU(ek->key_data_len)); 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 * 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 * 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. * send no PMKID KDE.
*/ */
if (!sm->eap_exchanged && !sm->handshake->wpa_ie && 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) { rsn_info.num_pmkids) {
bool found = false; bool found = false;
int i; int i;