summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Doliner <markdoliner@pidgin.im>2008-09-10 21:59:09 +0000
committerMark Doliner <markdoliner@pidgin.im>2008-09-10 21:59:09 +0000
commit2ee2e65924b7f557daa0d307e9cf4fcdc1400ce4 (patch)
tree8a5cbbb2381c09222efe47f97487369b0628cfe3
parenta8166c59efe0d5375b9a652c6f1e97cc49a25d24 (diff)
downloadpidgin-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.c11
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",