connman will crash if we turn power off/on. This because we do
not call __connman_ipconfig_disable on service_free function,
which lead to leave it in ipconfig_list. this will case
accesing bad pointer in __connman_ipconfig_newlink function.
---
 src/service.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/service.c b/src/service.c
index eca4ef2..48f990b 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2934,11 +2934,13 @@ static void service_free(gpointer user_data)
                connman_provider_unref(service->provider);
 
        if (service->ipconfig_ipv4 != NULL) {
+               __connman_ipconfig_disable(service->ipconfig_ipv4);
                connman_ipconfig_unref(service->ipconfig_ipv4);
                service->ipconfig_ipv4 = NULL;
        }
 
        if (service->ipconfig_ipv6 != NULL) {
+               __connman_ipconfig_disable(service->ipconfig_ipv6);
                connman_ipconfig_unref(service->ipconfig_ipv6);
                service->ipconfig_ipv6 = NULL;
        }
-- 
1.7.2.2

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to