From b8e7d19ec50c30c59fa1038cd9da6d37c2176833 Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun Date: Sat, 21 Jun 2014 17:02:06 +0200 Subject: Workaround a bug in libc on Hurd The send() function, when asked to send 0 characters, doesn't trigger a corresponding recv(), except on Hurd. This breaks the communication between clamd and clamdscan. See: https://bugs.debian.org/752237 --- clamd/scanner.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clamd/scanner.c b/clamd/scanner.c index cd3d07c4ad3e..d531c4420686 100644 --- a/clamd/scanner.c +++ b/clamd/scanner.c @@ -119,6 +119,7 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea /* detect disconnected socket, * this should NOT detect half-shutdown sockets (SHUT_WR) */ +#if !defined(__GNU__) if (send(scandata->conn->sd, &ret, 0, 0) == -1 && errno != EINTR) { logg("$Client disconnected while command was active!\n"); thrmgr_group_terminate(scandata->conn->group); @@ -126,7 +127,7 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea free(filename); return CL_BREAK; } - +#endif if (thrmgr_group_need_terminate(scandata->conn->group)) { logg("^Client disconnected while scanjob was active\n"); if (reason == visit_file)