From 791e46222bd1d67bc21182a930a119a910a86c6f Mon Sep 17 00:00:00 2001 From: Julien Massot Date: Wed, 14 Mar 2012 08:59:07 +0000 Subject: [PATCH] dnsproxy: Remove pending requests before destroying the channel This fixes a segfault in request_timeout when disabling tethering. --- src/dnsproxy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dnsproxy.c b/src/dnsproxy.c index e0b8da2..7c75dd8 100644 --- a/src/dnsproxy.c +++ b/src/dnsproxy.c @@ -2662,6 +2662,8 @@ static void destroy_listener(struct listener_data *ifdata) DBG("Dropping pending request (id 0x%04x -> 0x%04x)", req->srcid, req->dstid); + if (req->timeout > 0) + g_source_remove(req->timeout); g_free(req->resp); g_free(req->request); @@ -2678,6 +2680,8 @@ static void destroy_listener(struct listener_data *ifdata) DBG("Dropping request (id 0x%04x -> 0x%04x)", req->srcid, req->dstid); + if (req->timeout > 0) + g_source_remove(req->timeout); g_free(req->resp); g_free(req->request); -- 2.7.4