diff options
Diffstat (limited to 'libpurple/dnsquery.c')
-rw-r--r-- | libpurple/dnsquery.c | 9 |
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); |