P2PS: Add a function to free a PD context
Free a PD context with a function encapsulating both os_free() call and setting a PD context pointer to NULL. Signed-off-by: Max Stepanov <Max.Stepanov@intel.com> Reviewed-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
a4c4c1d0e4
commit
3f048aa8d2
3 changed files with 15 additions and 12 deletions
|
@ -2970,7 +2970,7 @@ void p2p_deinit(struct p2p_data *p2p)
|
||||||
os_free(p2p->cfg->serial_number);
|
os_free(p2p->cfg->serial_number);
|
||||||
os_free(p2p->cfg->pref_chan);
|
os_free(p2p->cfg->pref_chan);
|
||||||
os_free(p2p->groups);
|
os_free(p2p->groups);
|
||||||
os_free(p2p->p2ps_prov);
|
p2ps_prov_free(p2p);
|
||||||
wpabuf_free(p2p->sd_resp);
|
wpabuf_free(p2p->sd_resp);
|
||||||
os_free(p2p->after_scan_tx);
|
os_free(p2p->after_scan_tx);
|
||||||
p2p_remove_wps_vendor_extensions(p2p);
|
p2p_remove_wps_vendor_extensions(p2p);
|
||||||
|
|
|
@ -803,6 +803,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
||||||
int p2p_send_prov_disc_req(struct p2p_data *p2p, struct p2p_device *dev,
|
int p2p_send_prov_disc_req(struct p2p_data *p2p, struct p2p_device *dev,
|
||||||
int join, int force_freq);
|
int join, int force_freq);
|
||||||
void p2p_reset_pending_pd(struct p2p_data *p2p);
|
void p2p_reset_pending_pd(struct p2p_data *p2p);
|
||||||
|
void p2ps_prov_free(struct p2p_data *p2p);
|
||||||
|
|
||||||
/* p2p_invitation.c */
|
/* p2p_invitation.c */
|
||||||
void p2p_process_invitation_req(struct p2p_data *p2p, const u8 *sa,
|
void p2p_process_invitation_req(struct p2p_data *p2p, const u8 *sa,
|
||||||
|
|
|
@ -881,8 +881,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
||||||
P2P_PROV_DISC_REJECTED,
|
P2P_PROV_DISC_REJECTED,
|
||||||
adv_id, adv_mac, NULL);
|
adv_id, adv_mac, NULL);
|
||||||
p2p_parse_free(&msg);
|
p2p_parse_free(&msg);
|
||||||
os_free(p2p->p2ps_prov);
|
p2ps_prov_free(p2p);
|
||||||
p2p->p2ps_prov = NULL;
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -920,8 +919,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
||||||
conncap, passwd_id, msg.persistent_ssid,
|
conncap, passwd_id, msg.persistent_ssid,
|
||||||
msg.persistent_ssid_len, 1, 0, NULL);
|
msg.persistent_ssid_len, 1, 0, NULL);
|
||||||
}
|
}
|
||||||
os_free(p2p->p2ps_prov);
|
p2ps_prov_free(p2p);
|
||||||
p2p->p2ps_prov = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status != P2P_SC_SUCCESS &&
|
if (status != P2P_SC_SUCCESS &&
|
||||||
|
@ -933,8 +931,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
||||||
p2p->p2ps_prov->session_mac,
|
p2p->p2ps_prov->session_mac,
|
||||||
group_mac, adv_id, p2p->p2ps_prov->session_id,
|
group_mac, adv_id, p2p->p2ps_prov->session_id,
|
||||||
0, 0, NULL, 0, 1, 0, NULL);
|
0, 0, NULL, 0, 1, 0, NULL);
|
||||||
os_free(p2p->p2ps_prov);
|
p2ps_prov_free(p2p);
|
||||||
p2p->p2ps_prov = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status == P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE) {
|
if (status == P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE) {
|
||||||
|
@ -950,8 +947,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
||||||
|
|
||||||
if (!deferred_sess_resp) {
|
if (!deferred_sess_resp) {
|
||||||
p2p_parse_free(&msg);
|
p2p_parse_free(&msg);
|
||||||
os_free(p2p->p2ps_prov);
|
p2ps_prov_free(p2p);
|
||||||
p2p->p2ps_prov = NULL;
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
utf8_escape((char *) msg.session_info, info_len,
|
utf8_escape((char *) msg.session_info, info_len,
|
||||||
|
@ -978,8 +974,7 @@ void p2p_process_prov_disc_resp(struct p2p_data *p2p, const u8 *sa,
|
||||||
P2P_PROV_DISC_REJECTED, 0,
|
P2P_PROV_DISC_REJECTED, 0,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
p2p_parse_free(&msg);
|
p2p_parse_free(&msg);
|
||||||
os_free(p2p->p2ps_prov);
|
p2ps_prov_free(p2p);
|
||||||
p2p->p2ps_prov = NULL;
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1120,7 +1115,7 @@ int p2p_prov_disc_req(struct p2p_data *p2p, const u8 *peer_addr,
|
||||||
|
|
||||||
/* Reset provisioning info */
|
/* Reset provisioning info */
|
||||||
dev->wps_prov_info = 0;
|
dev->wps_prov_info = 0;
|
||||||
os_free(p2p->p2ps_prov);
|
p2ps_prov_free(p2p);
|
||||||
p2p->p2ps_prov = p2ps_prov;
|
p2p->p2ps_prov = p2ps_prov;
|
||||||
|
|
||||||
dev->req_config_methods = config_methods;
|
dev->req_config_methods = config_methods;
|
||||||
|
@ -1176,3 +1171,10 @@ void p2p_reset_pending_pd(struct p2p_data *p2p)
|
||||||
p2p->pd_retries = 0;
|
p2p->pd_retries = 0;
|
||||||
p2p->pd_force_freq = 0;
|
p2p->pd_force_freq = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void p2ps_prov_free(struct p2p_data *p2p)
|
||||||
|
{
|
||||||
|
os_free(p2p->p2ps_prov);
|
||||||
|
p2p->p2ps_prov = NULL;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue