WPS: Fix a memory leak if set_ie_cb() is not set
Skip WPS IE building for Beacon and Probe Response frames is set_ie_cb() is not set. This fixes a memory leak and optimizes operations by not allocating memory and building the WPS IEs unnecessarily.
This commit is contained in:
parent
32da61d9c9
commit
9fdeaf8f3a
1 changed files with 3 additions and 3 deletions
|
@ -819,9 +819,6 @@ static void wps_cb_reg_success(struct wps_registrar *reg, const u8 *mac_addr,
|
||||||
static int wps_cb_set_ie(struct wps_registrar *reg, struct wpabuf *beacon_ie,
|
static int wps_cb_set_ie(struct wps_registrar *reg, struct wpabuf *beacon_ie,
|
||||||
struct wpabuf *probe_resp_ie)
|
struct wpabuf *probe_resp_ie)
|
||||||
{
|
{
|
||||||
if (reg->set_ie_cb == NULL)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return reg->set_ie_cb(reg->cb_ctx, beacon_ie, probe_resp_ie);
|
return reg->set_ie_cb(reg->cb_ctx, beacon_ie, probe_resp_ie);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -881,6 +878,9 @@ static int wps_set_ie(struct wps_registrar *reg)
|
||||||
struct wpabuf *beacon;
|
struct wpabuf *beacon;
|
||||||
struct wpabuf *probe;
|
struct wpabuf *probe;
|
||||||
|
|
||||||
|
if (reg->set_ie_cb == NULL)
|
||||||
|
return 0;
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "WPS: Build Beacon and Probe Response IEs");
|
wpa_printf(MSG_DEBUG, "WPS: Build Beacon and Probe Response IEs");
|
||||||
|
|
||||||
beacon = wpabuf_alloc(300);
|
beacon = wpabuf_alloc(300);
|
||||||
|
|
Loading…
Reference in a new issue