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