Browse Source

D-Bus: Fix P2P persistent group removal from non-D-Bus triggers

It is possible for the persistent group object to be added and removed
by non-D-Bus triggers (e.g., ctrl_iface commands). The add part was
already handled, but removal was not. That resulted in memory leaks when
a P2P persistent group was removed without using an explicit D-Bus
command for this even if the object was added without D-Bus involvement.

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 10 years ago
parent
commit
5f136bc126
1 changed files with 3 additions and 0 deletions
  1. 3 0
      wpa_supplicant/notify.c

+ 3 - 0
wpa_supplicant/notify.c

@@ -316,6 +316,9 @@ void wpas_notify_network_removed(struct wpa_supplicant *wpa_s,
 		wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
 	if (!ssid->p2p_group && wpa_s->global->p2p_group_formation != wpa_s)
 		wpas_dbus_unregister_network(wpa_s, ssid->id);
+	if (network_is_persistent_group(ssid))
+		wpas_notify_persistent_group_removed(wpa_s, ssid);
+
 	wpas_p2p_network_removed(wpa_s, ssid);
 }