From: Jouni Malinen Date: Fri, 24 Aug 2012 17:45:22 +0000 (+0300) Subject: P2P: Fix memory leak with driver-based P2P management X-Git-Tag: hostap_2_0~344 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf428a739c9b3b6001b2de857ef37b54ec12c510;p=thirdparty%2Fhostap.git P2P: Fix memory leak with driver-based P2P management If the P2P management operations are handled within the driver, the P2P service entries were not freed when terminating wpa_supplicant. Fix this by calling wpas_p2p_service_flush() even if the P2P module within wpa_supplicant has not been initialized. Signed-hostap: Jouni Malinen --- diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 32b7b4488..59ceae7fe 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -2641,13 +2641,14 @@ void wpas_p2p_deinit_global(struct wpa_global *global) { struct wpa_supplicant *wpa_s, *tmp; + wpa_s = global->ifaces; + if (wpa_s) + wpas_p2p_service_flush(wpa_s); + if (global->p2p == NULL) return; /* Remove remaining P2P group interfaces */ - wpa_s = global->ifaces; - if (wpa_s) - wpas_p2p_service_flush(wpa_s); while (wpa_s && wpa_s->p2p_group_interface != NOT_P2P_GROUP_INTERFACE) wpa_s = wpa_s->next; while (wpa_s) {