mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-29 02:38:22 -05:00
FT: Merge similar error paths to use common steps
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
c89422864f
commit
a8e25deeb8
@ -1011,41 +1011,35 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm,
|
||||
buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
|
||||
2 + FT_R1KH_ID_LEN + 200;
|
||||
*resp_ies = os_zalloc(buflen);
|
||||
if (*resp_ies == NULL) {
|
||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
}
|
||||
if (*resp_ies == NULL)
|
||||
goto fail;
|
||||
|
||||
pos = *resp_ies;
|
||||
end = *resp_ies + buflen;
|
||||
|
||||
ret = wpa_write_rsn_ie(conf, pos, end - pos, parse.rsn_pmkid);
|
||||
if (ret < 0) {
|
||||
os_free(*resp_ies);
|
||||
*resp_ies = NULL;
|
||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
}
|
||||
if (ret < 0)
|
||||
goto fail;
|
||||
pos += ret;
|
||||
|
||||
ret = wpa_write_mdie(conf, pos, end - pos);
|
||||
if (ret < 0) {
|
||||
os_free(*resp_ies);
|
||||
*resp_ies = NULL;
|
||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
}
|
||||
if (ret < 0)
|
||||
goto fail;
|
||||
pos += ret;
|
||||
|
||||
ret = wpa_write_ftie(conf, parse.r0kh_id, parse.r0kh_id_len,
|
||||
sm->ANonce, sm->SNonce, pos, end - pos, NULL, 0);
|
||||
if (ret < 0) {
|
||||
os_free(*resp_ies);
|
||||
*resp_ies = NULL;
|
||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
}
|
||||
if (ret < 0)
|
||||
goto fail;
|
||||
pos += ret;
|
||||
|
||||
*resp_ies_len = pos - *resp_ies;
|
||||
|
||||
return WLAN_STATUS_SUCCESS;
|
||||
fail:
|
||||
os_free(*resp_ies);
|
||||
*resp_ies = NULL;
|
||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
@ -1543,12 +1537,10 @@ static int ft_pull_resp_cb(struct wpa_state_machine *sm, void *ctx)
|
||||
{
|
||||
struct ft_r0kh_r1kh_resp_frame *frame = ctx;
|
||||
|
||||
if (os_memcmp(frame->s1kh_id, sm->addr, ETH_ALEN) != 0)
|
||||
return 0;
|
||||
if (os_memcmp(frame->nonce, sm->ft_pending_pull_nonce,
|
||||
FT_R0KH_R1KH_PULL_NONCE_LEN) != 0)
|
||||
return 0;
|
||||
if (sm->ft_pending_cb == NULL || sm->ft_pending_req_ies == NULL)
|
||||
if (os_memcmp(frame->s1kh_id, sm->addr, ETH_ALEN) != 0 ||
|
||||
os_memcmp(frame->nonce, sm->ft_pending_pull_nonce,
|
||||
FT_R0KH_R1KH_PULL_NONCE_LEN) != 0 ||
|
||||
sm->ft_pending_cb == NULL || sm->ft_pending_req_ies == NULL)
|
||||
return 0;
|
||||
|
||||
wpa_printf(MSG_DEBUG, "FT: Response to a pending pull request for "
|
||||
|
Loading…
Reference in New Issue
Block a user