From: Patrik Flykt <[email protected]>

Do not add dnsproxy listener data to hash table if we fail to
create either a udp or tcp listener.
---
 src/dnsproxy.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/dnsproxy.c b/src/dnsproxy.c
index d9e291c..f22810f 100644
--- a/src/dnsproxy.c
+++ b/src/dnsproxy.c
@@ -1522,11 +1522,15 @@ int __connman_dnsproxy_add_listener(const char 
*interface)
        ifdata->udp_listener_watch = 0;
        ifdata->tcp_listener_channel = NULL;
        ifdata->tcp_listener_watch = 0;
-       g_hash_table_insert(listener_table, ifdata->ifname, ifdata);
 
        err = create_listener(interface);
-       if (err < 0)
+       if (err < 0) {
+               DBG("Couldn't create listener for %s, err %d", interface, err);
+               g_free(ifdata->ifname);
+               g_free(ifdata);
                return err;
+       }
+       g_hash_table_insert(listener_table, ifdata->ifname, ifdata);
        return 0;
 }
 
-- 
1.7.2.5

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

Reply via email to