P2PS: Notify D-Bus about removal of a stale persistent group

During P2PS PD Request processing wpa_supplicant removes stale
persistent groups, but it did not notify D-Bus to unregister object.
This can result in leaving behind objects pointing to freed memory and
memory leaks. Sometime it can cause a crash in wpa_config_get_all()
function and DBUS_ERROR_OBJECT_PATH_IN_USE errors.

Fix this by adding the missed notification to D-Bus code to unregister
the object.

Signed-off-by: Amit Khatri <amit7861234@gmail.com>
This commit is contained in:
Amit Khatri 2019-01-03 21:17:26 +05:30 committed by Jouni Malinen
parent ebf25480bb
commit 69dc9cabcc

View file

@ -3918,6 +3918,10 @@ static int wpas_remove_stale_groups(void *ctx, const u8 *peer, const u8 *go,
/* Remove stale persistent group */ /* Remove stale persistent group */
if (s->mode != WPAS_MODE_P2P_GO || s->num_p2p_clients <= 1) { if (s->mode != WPAS_MODE_P2P_GO || s->num_p2p_clients <= 1) {
wpa_dbg(wpa_s, MSG_DEBUG,
"P2P: Remove stale persistent group id=%d",
s->id);
wpas_notify_persistent_group_removed(wpa_s, s);
wpa_config_remove_network(wpa_s->conf, s->id); wpa_config_remove_network(wpa_s->conf, s->id);
save_config = 1; save_config = 1;
continue; continue;