$av_failed variable set when av_scanner deferred
[exim.git] / src / src / malware.c
index c7cd0bcca8581c2f1c0307d59bfba3bdbc70cc35..864564ffc926edb4d2a563db6236897779e1e66f 100644 (file)
@@ -69,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;
 }