Errorcheck library call
[exim.git] / src / src / malware.c
index b34ca5794648b1540ac4b27aece7a4d6fa386228..d9ab3b9dd19658a584da824d4b04f85ec2857b57 100644 (file)
@@ -4,7 +4,7 @@
 
 /* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003 - 2015
  * License: GPL
- * Copyright (c) The Exim Maintainers 2015 - 2020
+ * Copyright (c) The Exim Maintainers 2015 - 2021
  */
 
 /* Code for calling virus (malware) scanners. Called from acl.c. */
@@ -277,11 +277,7 @@ int fd = ip_connectedsocket(SOCK_STREAM, hostname, port, port, 5,
 /* Under some fault conditions, FreeBSD 12.2 seen to send a (non-TFO) SYN
 and, getting no response, wait for a long time.  Impose a 5s max. */
 if (fd >= 0)
-  {
-  struct timeval tv = {.tv_sec = 5};
-  fd_set fds;
-  FD_ZERO(&fds); FD_SET(fd, &fds); (void) select(fd+1, NULL, &fds, NULL, &tv);
-  }
+  (void) poll_one_fd(fd, POLLOUT, 5 * 1000);
 #endif
 return fd;
 }
@@ -1457,7 +1453,7 @@ badseek:  err = errno;
       uschar av_buffer[1024];
       uschar *hostname = US"";
       host_item connhost;
-      int clam_fd, result;
+      int clam_fd;
       unsigned int fsize_uint;
       BOOL use_scan_command = FALSE;
       clamd_address * cv[MAX_CLAMD_SERVERS];
@@ -1563,7 +1559,11 @@ badseek:  err = errno;
       if (!use_scan_command)
        { cmd_str.data = US"zINSTREAM"; cmd_str.len = 10; }
       else
-       cmd_str.data = string_sprintf("SCAN %s\n%n", eml_filename, &cmd_str.len);
+       {
+       int n;
+       cmd_str.data = string_sprintf("SCAN %s\n%n", eml_filename, &n);
+       cmd_str.len = n;                /* .len is a size_t */
+       }
 
       /* We have some network servers specified */
       if (num_servers)
@@ -1820,7 +1820,7 @@ badseek:  err = errno;
       if (*p) ++p;
 
       /* colon in returned output? */
-      if(!(p = Ustrchr(av_buffer,':')))
+      if (!(p = Ustrchr(av_buffer,':')))
        return m_panic_defer(scanent, CUS callout_address, string_sprintf(
                  "ClamAV returned malformed result (missing colon): %s",
                  av_buffer));