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>
This commit is contained in:
parent
d20be3a739
commit
5f136bc126
1 changed files with 3 additions and 0 deletions
|
@ -316,6 +316,9 @@ void wpas_notify_network_removed(struct wpa_supplicant *wpa_s,
|
||||||
wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
|
wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
|
||||||
if (!ssid->p2p_group && wpa_s->global->p2p_group_formation != wpa_s)
|
if (!ssid->p2p_group && wpa_s->global->p2p_group_formation != wpa_s)
|
||||||
wpas_dbus_unregister_network(wpa_s, ssid->id);
|
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);
|
wpas_p2p_network_removed(wpa_s, ssid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue