diff options
| -rw-r--r-- | network/server.c | 7 | ||||
| -rw-r--r-- | serial/proxy.c | 2 | 
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); | 
