diff options
| author | Vinicius Costa Gomes <vinicius.gomes@openbossa.org> | 2008-08-22 16:41:22 -0300 | 
|---|---|---|
| committer | Vinicius Costa Gomes <vinicius.gomes@openbossa.org> | 2008-08-25 17:05:23 -0300 | 
| commit | ad0f427712ed463b7c36c2472664eedd91c94344 (patch) | |
| tree | 163858bbcf9d606c59a3c5d6052ae480931e9418 /network/server.c | |
| parent | 02dacdc326c29386bbae2574212ff029974444e7 (diff) | |
Fixing some invalid reads when removing multiple adapters.
Diffstat (limited to 'network/server.c')
| -rw-r--r-- | network/server.c | 7 | 
1 files changed, 4 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);  }  | 
