When a connection fails and service->network is not NULL, we end up calling
__connman_service_put() twice, since __connman_device_cleanup_networks()
calls it too . __connman_device_cleanup_networks() eventually calls
network_remove() from the element removal code, and that ends up calling
__connman_service_put().
---
src/service.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/service.c b/src/service.c
index 1d94a66..f5bb772 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2013,9 +2013,8 @@ failed:
if (network != NULL) {
connman_network_set_available(network, FALSE);
__connman_device_cleanup_networks(device);
- }
-
- __connman_service_put(service);
+ } else
+ __connman_service_put(service);
}
return err;
--
1.6.3.3
--
Intel Open Source Technology Centre
http://oss.intel.com/
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman