diff options
author | Jukka Rissanen <jukka.rissanen@linux.intel.com> | 2012-10-18 14:35:17 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-10-19 10:26:22 +0300 |
commit | d620dbb4e5e30c86fc1f62c029dfe4b3d9e02bdf (patch) | |
tree | 41d417c9b70f91c70ebb36d1d8dc8fe198d27855 /gweb | |
parent | 2807c98b033788032da2398cc35c516399b052b1 (diff) | |
download | connman-d620dbb4e5e30c86fc1f62c029dfe4b3d9e02bdf.tar.gz connman-d620dbb4e5e30c86fc1f62c029dfe4b3d9e02bdf.tar.bz2 connman-d620dbb4e5e30c86fc1f62c029dfe4b3d9e02bdf.zip |
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
Diffstat (limited to 'gweb')
-rw-r--r-- | gweb/gresolv.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gweb/gresolv.c b/gweb/gresolv.c index da09b2b2..cf7f2e9c 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); |