From: Jouni Malinen Date: Fri, 24 Mar 2017 18:53:54 +0000 (+0200) Subject: wlantest: Fix EAPOL buffer length with variable MIC length X-Git-Tag: hostap_2_7~1435 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=19e7ddf7fbdc40f2eeef625a63eda2fc17a3739d;p=thirdparty%2Fhostap.git wlantest: Fix EAPOL buffer length with variable MIC length struct wpa_eapol_key does not include the MIC field anymore, so need to add it explicitly. Signed-off-by: Jouni Malinen --- diff --git a/wlantest/rx_eapol.c b/wlantest/rx_eapol.c index aa0566ded..3366ad4c7 100644 --- a/wlantest/rx_eapol.c +++ b/wlantest/rx_eapol.c @@ -640,7 +640,7 @@ static void rx_data_eapol_key_3_of_4(struct wlantest *wt, const u8 *dst, } if (wt->write_pcap_dumper && decrypted != key_data) { /* Fill in a dummy Data frame header */ - u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr)]; + u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr) + 64]; struct ieee80211_hdr *h; struct wpa_eapol_key *k; const u8 *p; @@ -675,7 +675,8 @@ static void rx_data_eapol_key_3_of_4(struct wlantest *wt, const u8 *dst, WPA_PUT_BE16(k->key_info, key_info & ~WPA_KEY_INFO_ENCR_KEY_DATA); WPA_PUT_BE16(pos, plain_len); - write_pcap_decrypted(wt, buf, sizeof(buf), + write_pcap_decrypted(wt, buf, 24 + 8 + sizeof(*eapol) + + sizeof(*hdr) + mic_len + 2, decrypted, plain_len); } @@ -835,7 +836,7 @@ static void rx_data_eapol_key_1_of_2(struct wlantest *wt, const u8 *dst, decrypted, decrypted_len); if (wt->write_pcap_dumper) { /* Fill in a dummy Data frame header */ - u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr)]; + u8 buf[24 + 8 + sizeof(*eapol) + sizeof(*hdr) + 64]; struct ieee80211_hdr *h; struct wpa_eapol_key *k; u8 *pos; @@ -869,7 +870,8 @@ static void rx_data_eapol_key_1_of_2(struct wlantest *wt, const u8 *dst, WPA_PUT_BE16(k->key_info, key_info & ~WPA_KEY_INFO_ENCR_KEY_DATA); WPA_PUT_BE16(pos, plain_len); - write_pcap_decrypted(wt, buf, sizeof(buf), + write_pcap_decrypted(wt, buf, 24 + 8 + sizeof(*eapol) + + sizeof(*hdr) + mic_len + 2, decrypted, plain_len); } if (sta->proto & WPA_PROTO_RSN)