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

Reply via email to