[PATCH 2/3] mesh: Fix a memory leak on error path

Masashi Honma masashi.honma at gmail.com
Fri Apr 13 01:38:35 PDT 2018


1523604178.526129: MEMLEAK[0x28b9ca0]: len 112
1523604178.526939: WPA_TRACE: memleak - START
1523604178.531207: [0]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant(os_malloc+0x8e) [0x4535ee]
1523604178.531237:      os_malloc() ../src/utils/os_unix.c:702
1523604178.531248: [1]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant(os_zalloc+0xe) [0x453b1e]
1523604178.531255:      os_zalloc() ../src/utils/os_unix.c:761
1523604178.531911: [2]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant(wpa_supplicant_join_mesh+0x2e) [0x45bd8e]
1523604178.531922:      wpa_supplicant_join_mesh() mesh.c:436
1523604178.537005: [3]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant(wpa_supplicant_associate+0x115) [0x5b9795]
1523604178.537038:      wpa_supplicant_associate() wpa_supplicant.c:1913
1523604178.537957: [4]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant() [0x5c8eac]
1523604178.537976:      wpa_supplicant_scan() scan.c:829
1523604178.538243: [5]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant(eloop_run+0x1d4) [0x455964]
1523604178.538255:      eloop_run() ../src/utils/eloop.c:1196
1523604178.538291: [6]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant(wpa_supplicant_run+0x77) [0x5b5a97]
1523604178.538329:      wpa_supplicant_run() wpa_supplicant.c:6175
1523604178.538609: [7]: /home/honma/git/hostap/tests/hwsim/../../wpa_supplicant/wpa_supplicant(main+0x3b0) [0x4404c0]
1523604178.538620:      main() main.c:392
1523604178.538624: WPA_TRACE: memleak - END
1523604178.538626: MEMLEAK: total 112 bytes

Signed-off-by: Masashi Honma <masashi.honma at gmail.com>
---
 wpa_supplicant/mesh.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c
index 9450bc4..a5c748a 100644
--- a/wpa_supplicant/mesh.c
+++ b/wpa_supplicant/mesh.c
@@ -433,8 +433,10 @@ int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s,
 		os_zalloc(sizeof(struct wpa_driver_mesh_join_params));
 	int ret = 0;
 
-	if (!ssid || !ssid->ssid || !ssid->ssid_len || !ssid->frequency || !params) {
+	if (!ssid || !ssid->ssid || !ssid->ssid_len || !ssid->frequency ||
+	    !params) {
 		ret = -ENOENT;
+		os_free(params);
 		goto out;
 	}
 
-- 
2.7.4




More information about the Hostap mailing list