dnsproxy: Remove pending requests before destroying the channel
authorJulien Massot <jmassot@aldebaran-robotics.com>
Wed, 14 Mar 2012 08:59:07 +0000 (08:59 +0000)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 21 Mar 2012 08:43:58 +0000 (10:43 +0200)
This fixes a segfault in request_timeout when disabling tethering.

src/dnsproxy.c

index e0b8da2..7c75dd8 100644 (file)
@@ -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);