mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-01-03 10:32:33 +01:00
p2p: Free parsed frame data in p2p_go_negotiation_confirm_cb
This commit is contained in:
parent
47596c67d3
commit
c58b91dfd4
14
src/p2p.c
14
src/p2p.c
@ -1810,19 +1810,19 @@ static bool p2p_go_negotiation_confirm_cb(const struct mmpdu_header *mpdu,
|
|||||||
if (info.dialog_token != dev->conn_go_dialog_token) {
|
if (info.dialog_token != dev->conn_go_dialog_token) {
|
||||||
l_error("GO Negotiation Response dialog token doesn't match");
|
l_error("GO Negotiation Response dialog token doesn't match");
|
||||||
p2p_connect_failed(dev);
|
p2p_connect_failed(dev);
|
||||||
return true;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info.status != P2P_STATUS_SUCCESS) {
|
if (info.status != P2P_STATUS_SUCCESS) {
|
||||||
l_error("GO Negotiation Confirmation status %i", info.status);
|
l_error("GO Negotiation Confirmation status %i", info.status);
|
||||||
p2p_connect_failed(dev);
|
p2p_connect_failed(dev);
|
||||||
return true;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether WFD IE is required, validate it if present */
|
/* Check whether WFD IE is required, validate it if present */
|
||||||
if (!p2p_device_validate_conn_wfd(dev, info.wfd, info.wfd_size)) {
|
if (!p2p_device_validate_conn_wfd(dev, info.wfd, info.wfd_size)) {
|
||||||
p2p_connect_failed(dev);
|
p2p_connect_failed(dev);
|
||||||
return true;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1833,7 +1833,7 @@ static bool p2p_go_negotiation_confirm_cb(const struct mmpdu_header *mpdu,
|
|||||||
if (!p2p_device_validate_channel_list(dev, &info.channel_list,
|
if (!p2p_device_validate_channel_list(dev, &info.channel_list,
|
||||||
&info.operating_channel)) {
|
&info.operating_channel)) {
|
||||||
p2p_connect_failed(dev);
|
p2p_connect_failed(dev);
|
||||||
return true;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1852,7 +1852,7 @@ static bool p2p_go_negotiation_confirm_cb(const struct mmpdu_header *mpdu,
|
|||||||
l_error("Bad operating channel in GO Negotiation "
|
l_error("Bad operating channel in GO Negotiation "
|
||||||
"Confirmation");
|
"Confirmation");
|
||||||
p2p_connect_failed(dev);
|
p2p_connect_failed(dev);
|
||||||
return true;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1873,7 +1873,7 @@ static bool p2p_go_negotiation_confirm_cb(const struct mmpdu_header *mpdu,
|
|||||||
l_error("Bad operating channel in GO Negotiation "
|
l_error("Bad operating channel in GO Negotiation "
|
||||||
"Confirmation");
|
"Confirmation");
|
||||||
p2p_connect_failed(dev);
|
p2p_connect_failed(dev);
|
||||||
return true;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
dev->conn_go_oper_freq = frequency;
|
dev->conn_go_oper_freq = frequency;
|
||||||
@ -1892,6 +1892,8 @@ static bool p2p_go_negotiation_confirm_cb(const struct mmpdu_header *mpdu,
|
|||||||
p2p_config_timeout_destroy);
|
p2p_config_timeout_destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
p2p_clear_go_negotiation_confirmation(&info);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user