---
 src/wispr.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/wispr.c b/src/wispr.c
index 1f470f7..a0d491a 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -721,6 +721,8 @@ int __connman_wispr_start(struct connman_service *service,
                wp_context->service = service;
                wp_context->type = type;
 
+               connman_service_ref(service);
+
                if (type == CONNMAN_IPCONFIG_TYPE_IPV4)
                        wispr_portal->ipv4_context = wp_context;
                else
@@ -745,7 +747,9 @@ void __connman_wispr_stop(struct connman_service *service)
        if (index < 0)
                return;
 
-       g_hash_table_remove(wispr_portal_list, GINT_TO_POINTER(index));
+       if (g_hash_table_remove(wispr_portal_list,
+                                       GINT_TO_POINTER(index)) == TRUE)
+               connman_service_unref(service);
 }
 
 int __connman_wispr_init(void)
-- 
1.7.1

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to