diff options
author | Mark Doliner <markdoliner@pidgin.im> | 2008-09-10 21:59:09 +0000 |
---|---|---|
committer | Mark Doliner <markdoliner@pidgin.im> | 2008-09-10 21:59:09 +0000 |
commit | 2ee2e65924b7f557daa0d307e9cf4fcdc1400ce4 (patch) | |
tree | 8a5cbbb2381c09222efe47f97487369b0628cfe3 | |
parent | a8166c59efe0d5375b9a652c6f1e97cc49a25d24 (diff) | |
download | pidgin-2ee2e65924b7f557daa0d307e9cf4fcdc1400ce4.tar.gz |
Fix this g_return_val_if_fail. It should have been returning TRUE or
FALSE and not -1. But I think it was also leaking. I made the log
message a little better, too.
-rw-r--r-- | libpurple/dnsquery.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libpurple/dnsquery.c b/libpurple/dnsquery.c index a43230e2fb..8b51692d57 100644 --- a/libpurple/dnsquery.c +++ b/libpurple/dnsquery.c @@ -412,7 +412,7 @@ send_dns_request_to_child(PurpleDnsQueryData *query_data, { pid_t pid; dns_params_t dns_params; - int rc; + ssize_t rc; /* This waitpid might return the child's PID if it has recently * exited, or it might return an error if it exited "long @@ -444,8 +444,13 @@ send_dns_request_to_child(PurpleDnsQueryData *query_data, purple_dnsquery_resolver_destroy(resolver); return FALSE; } - - g_return_val_if_fail(rc == sizeof(dns_params), -1); + if (rc < sizeof(dns_params)) { + purple_debug_error("dns", "Tried to read %" G_GSSIZE_FORMAT + " bytes from child but only read %" G_GSSIZE_FORMAT "\n", + sizeof(dns_params), rc); + purple_dnsquery_resolver_destroy(resolver); + return FALSE; + } purple_debug_info("dns", "Successfully sent DNS request to child %d\n", |