diff options
-rw-r--r-- | gsupplicant/supplicant.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 35a0e5a4..84526569 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -1986,12 +1986,15 @@ static void interface_remove_result(const char *error, goto done; } - g_hash_table_remove(interface_table, data->interface->path); + /* + * The gsupplicant interface is already freed by the InterfaceRemoved + * signal callback. Simply invoke the interface_data callback. + */ err = 0; done: if (data->callback != NULL) - data->callback(err, data->interface, data->user_data); + data->callback(err, NULL, data->user_data); dbus_free(data); } |