summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--network/server.c7
-rw-r--r--serial/proxy.c2
2 files changed, 6 insertions, 3 deletions
diff --git a/network/server.c b/network/server.c
index 606cfc7c..18ee24f6 100644
--- a/network/server.c
+++ b/network/server.c
@@ -847,15 +847,16 @@ static void path_unregister(void *data)
struct network_server *ns = data;
struct network_adapter *na = ns->na;
- na->servers = g_slist_remove(na->servers, ns);
- server_free(ns);
-
info("Unregistered interface %s on path %s",
ns->iface, na->path);
+ na->servers = g_slist_remove(na->servers, ns);
+ server_free(ns);
+
if (na->servers)
return;
+ adapters = g_slist_remove(adapters, na);
adapter_free(na);
}
diff --git a/serial/proxy.c b/serial/proxy.c
index 88c517a0..d779d848 100644
--- a/serial/proxy.c
+++ b/serial/proxy.c
@@ -1009,6 +1009,8 @@ static void manager_path_unregister(void *data)
if (adapter->conn)
dbus_connection_unref(adapter->conn);
+
+ adapters = g_slist_remove(adapters, adapter);
g_slist_free(adapter->proxies);
g_free(adapter->path);
g_free(adapter);