From 9fdeaf8f3ab8523d68fdb82de163158689a123e4 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 25 Dec 2009 01:29:59 +0200 Subject: [PATCH] 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. --- src/wps/wps_registrar.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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);