From: Jouni Malinen Date: Thu, 24 Dec 2009 23:29:59 +0000 (+0200) Subject: WPS: Fix a memory leak if set_ie_cb() is not set X-Git-Tag: hostap_0_7_1~213 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9fdeaf8f3ab8523d68fdb82de163158689a123e4;p=thirdparty%2Fhostap.git 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. --- diff --git a/src/wps/wps_registrar.c b/src/wps/wps_registrar.c index fbc4e77f2..07e65462e 100644 --- a/src/wps/wps_registrar.c +++ b/src/wps/wps_registrar.c @@ -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, 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); } @@ -881,6 +878,9 @@ static int wps_set_ie(struct wps_registrar *reg) struct wpabuf *beacon; struct wpabuf *probe; + if (reg->set_ie_cb == NULL) + return 0; + wpa_printf(MSG_DEBUG, "WPS: Build Beacon and Probe Response IEs"); beacon = wpabuf_alloc(300);