summaryrefslogtreecommitdiff
path: root/libpurple/dnsquery.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpurple/dnsquery.c')
-rw-r--r--libpurple/dnsquery.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libpurple/dnsquery.c b/libpurple/dnsquery.c
index 39ce702674..cc5d39e674 100644
--- a/libpurple/dnsquery.c
+++ b/libpurple/dnsquery.c
@@ -345,6 +345,12 @@ purple_dnsquery_resolver_destroy(PurpleDnsQueryResolverProcess *resolver)
{
g_return_if_fail(resolver != NULL);
+ /* Keep this before the kill() call below. */
+ if (resolver->inpa != 0) {
+ purple_input_remove(resolver->inpa);
+ resolver->inpa = 0;
+ }
+
/*
* We might as well attempt to kill our child process. It really
* doesn't matter if this fails, because children will expire on
@@ -353,9 +359,6 @@ purple_dnsquery_resolver_destroy(PurpleDnsQueryResolverProcess *resolver)
if (resolver->dns_pid > 0)
kill(resolver->dns_pid, SIGKILL);
- if (resolver->inpa != 0)
- purple_input_remove(resolver->inpa);
-
close(resolver->fd_in);
close(resolver->fd_out);