summaryrefslogtreecommitdiff
path: root/src/dnsproxy.c
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2012-01-16 09:18:12 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2012-01-16 11:52:58 +0100
commitd0fa0d7b6c2e6cb6834ab048742bdffc41371aa4 (patch)
treebaad00210b69b3e8bbe7f2fcc9c91bd503e93188 /src/dnsproxy.c
parent0c69df2e427c82027eab8cf73e94b34d7b2aff66 (diff)
downloadconnman-d0fa0d7b6c2e6cb6834ab048742bdffc41371aa4.tar.gz
connman-d0fa0d7b6c2e6cb6834ab048742bdffc41371aa4.tar.bz2
connman-d0fa0d7b6c2e6cb6834ab048742bdffc41371aa4.zip
dnsproxy: Fix invalid hash table cleanup
The remove_listener() should not call __connman_dnsproxy_remove_listener because that function will modify the hash table.
Diffstat (limited to 'src/dnsproxy.c')
-rw-r--r--src/dnsproxy.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dnsproxy.c b/src/dnsproxy.c
index adf7535c..6f8d39a4 100644
--- a/src/dnsproxy.c
+++ b/src/dnsproxy.c
@@ -2734,7 +2734,12 @@ void __connman_dnsproxy_remove_listener(const char *interface)
static void remove_listener(gpointer key, gpointer value, gpointer user_data)
{
- __connman_dnsproxy_remove_listener(key);
+ const char *interface = key;
+ struct listener_data *ifdata = value;
+
+ DBG("interface %s", interface);
+
+ destroy_listener(ifdata);
}
int __connman_dnsproxy_init(void)