From d620dbb4e5e30c86fc1f62c029dfe4b3d9e02bdf Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Thu, 18 Oct 2012 14:35:17 +0300 Subject: [PATCH] gresolv: Make sure we will not receive DNS data after closing We must close the channel when freeing the resolver object, otherwise we might still receive data when the resolver has been freed already. Fixes BMC#25757 --- gweb/gresolv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gweb/gresolv.c b/gweb/gresolv.c index da09b2b..cf7f2e9 100644 --- a/gweb/gresolv.c +++ b/gweb/gresolv.c @@ -554,8 +554,10 @@ static void free_nameserver(struct resolv_nameserver *nameserver) if (nameserver->udp_watch > 0) g_source_remove(nameserver->udp_watch); - if (nameserver->udp_channel != NULL) + if (nameserver->udp_channel != NULL) { + g_io_channel_shutdown(nameserver->udp_channel, TRUE, NULL); g_io_channel_unref(nameserver->udp_channel); + } g_free(nameserver->address); g_free(nameserver); -- 2.7.4