When terminating a connman instance with ready p2p connection, interface_table was trying to free a removed interface, so just inverting the deinit order, solves the issue. --- gsupplicant/supplicant.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 9f63d63..6dad7a9 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -4935,9 +4935,6 @@ void g_supplicant_unregister(const GSupplicantCallbacks *callbacks) group_mapping = NULL; } - if (system_available) - callback_system_killed(); - if (interface_table) { g_hash_table_foreach(interface_table, unregister_remove_interface, NULL); @@ -4945,6 +4942,9 @@ void g_supplicant_unregister(const GSupplicantCallbacks *callbacks) interface_table = NULL; } + if (system_available) + callback_system_killed(); + if (connection) { dbus_connection_unref(connection); connection = NULL; -- 1.9.1 _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman