GLib doesn't like NULL pointers.

cleanup() may be invoked more than once after successful setup,
first from dhcpv6_callback() and then from __connman_ipv6pd_cleanup()
---
 src/ipv6pd.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/ipv6pd.c b/src/ipv6pd.c
index 5ecda38..0d221f0 100644
--- a/src/ipv6pd.c
+++ b/src/ipv6pd.c
@@ -165,8 +165,10 @@ static void cleanup(void)
                timer_uplink = 0;
        }
 
-       g_hash_table_destroy(timer_hash);
-       timer_hash = NULL;
+       if (timer_hash) {
+               g_hash_table_destroy(timer_hash);
+               timer_hash = NULL;
+       }
 
        if (prefixes) {
                g_slist_free_full(prefixes, g_free);
-- 
1.8.3.2

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to