Overhaul of GnuTLS code.
[exim.git] / src / src / malware.c
index de8d08d195f0a55cbeb5d5807a4d32ae0094f237..79e2e382758a23e5e58beaefba78bdbcde51562c 100644 (file)
@@ -1,5 +1,3 @@
-/* $Cambridge: exim/src/src/malware.c,v 1.21 2010/06/07 00:12:42 pdp Exp $ */
-
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
@@ -71,17 +69,22 @@ Returns:      Exim message processing code (OK, FAIL, DEFER, ...)
 int malware(uschar **listptr) {
   uschar scan_filename[1024];
   BOOL fits;
+  int ret;
 
   fits = string_format(scan_filename, sizeof(scan_filename),
       CS"%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
   if (!fits)
     {
+    av_failed = TRUE;
     log_write(0, LOG_MAIN|LOG_PANIC,
         "malware filename does not fit in buffer [malware()]");
     return DEFER;
   }
 
-  return malware_internal(listptr, scan_filename, FALSE);
+  ret = malware_internal(listptr, scan_filename, FALSE);
+  if (ret == DEFER) av_failed = TRUE;
+
+  return ret;
 }
 
 
@@ -112,7 +115,7 @@ malware_in_file(uschar *eml_filename) {
   /* spool_mbox() assumes various parameters exist, when creating
   the relevant directory and the email within */
   (void) string_format(message_id_buf, sizeof(message_id_buf),
-      "dummy-%d", pseudo_random_number(INT_MAX));
+      "dummy-%d", vaguely_random_number(INT_MAX));
   message_id = message_id_buf;
   sender_address = US"malware-sender@example.net";
   return_path = US"";
@@ -1917,7 +1920,7 @@ static int mksd_scan_packed(int sock, uschar *scan_filename)
   iov[0].iov_len = 3;
   iov[1].iov_base = CS scan_filename;
   iov[1].iov_len = Ustrlen(scan_filename);
-  iov[2].iov_base = (void *) cmd + 3;
+  iov[2].iov_base = (void *) (cmd + 3);
   iov[2].iov_len = 1;
 
   if (mksd_writev (sock, iov, 3) < 0)