mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2025-02-26 13:49:35 -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) +
|
buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
|
||||||
2 + FT_R1KH_ID_LEN + 200;
|
2 + FT_R1KH_ID_LEN + 200;
|
||||||
*resp_ies = os_zalloc(buflen);
|
*resp_ies = os_zalloc(buflen);
|
||||||
if (*resp_ies == NULL) {
|
if (*resp_ies == NULL)
|
||||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
goto fail;
|
||||||
}
|
|
||||||
|
|
||||||
pos = *resp_ies;
|
pos = *resp_ies;
|
||||||
end = *resp_ies + buflen;
|
end = *resp_ies + buflen;
|
||||||
|
|
||||||
ret = wpa_write_rsn_ie(conf, pos, end - pos, parse.rsn_pmkid);
|
ret = wpa_write_rsn_ie(conf, pos, end - pos, parse.rsn_pmkid);
|
||||||
if (ret < 0) {
|
if (ret < 0)
|
||||||
os_free(*resp_ies);
|
goto fail;
|
||||||
*resp_ies = NULL;
|
|
||||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
|
||||||
}
|
|
||||||
pos += ret;
|
pos += ret;
|
||||||
|
|
||||||
ret = wpa_write_mdie(conf, pos, end - pos);
|
ret = wpa_write_mdie(conf, pos, end - pos);
|
||||||
if (ret < 0) {
|
if (ret < 0)
|
||||||
os_free(*resp_ies);
|
goto fail;
|
||||||
*resp_ies = NULL;
|
|
||||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
|
||||||
}
|
|
||||||
pos += ret;
|
pos += ret;
|
||||||
|
|
||||||
ret = wpa_write_ftie(conf, parse.r0kh_id, parse.r0kh_id_len,
|
ret = wpa_write_ftie(conf, parse.r0kh_id, parse.r0kh_id_len,
|
||||||
sm->ANonce, sm->SNonce, pos, end - pos, NULL, 0);
|
sm->ANonce, sm->SNonce, pos, end - pos, NULL, 0);
|
||||||
if (ret < 0) {
|
if (ret < 0)
|
||||||
os_free(*resp_ies);
|
goto fail;
|
||||||
*resp_ies = NULL;
|
|
||||||
return WLAN_STATUS_UNSPECIFIED_FAILURE;
|
|
||||||
}
|
|
||||||
pos += ret;
|
pos += ret;
|
||||||
|
|
||||||
*resp_ies_len = pos - *resp_ies;
|
*resp_ies_len = pos - *resp_ies;
|
||||||
|
|
||||||
return WLAN_STATUS_SUCCESS;
|
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;
|
struct ft_r0kh_r1kh_resp_frame *frame = ctx;
|
||||||
|
|
||||||
if (os_memcmp(frame->s1kh_id, sm->addr, ETH_ALEN) != 0)
|
if (os_memcmp(frame->s1kh_id, sm->addr, ETH_ALEN) != 0 ||
|
||||||
return 0;
|
os_memcmp(frame->nonce, sm->ft_pending_pull_nonce,
|
||||||
if (os_memcmp(frame->nonce, sm->ft_pending_pull_nonce,
|
FT_R0KH_R1KH_PULL_NONCE_LEN) != 0 ||
|
||||||
FT_R0KH_R1KH_PULL_NONCE_LEN) != 0)
|
sm->ft_pending_cb == NULL || sm->ft_pending_req_ies == NULL)
|
||||||
return 0;
|
|
||||||
if (sm->ft_pending_cb == NULL || sm->ft_pending_req_ies == NULL)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "FT: Response to a pending pull request for "
|
wpa_printf(MSG_DEBUG, "FT: Response to a pending pull request for "
|
||||||
|
Loading…
x
Reference in New Issue
Block a user