X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Fmalware.c;h=864564ffc926edb4d2a563db6236897779e1e66f;hb=c4d9f824f7dc63f898f0261d18ea09dc48b48ca8;hp=de8d08d195f0a55cbeb5d5807a4d32ae0094f237;hpb=1ba28e2b955b005ce4825fec792df17f75a8de1e;p=exim.git diff --git a/src/src/malware.c b/src/src/malware.c index de8d08d19..864564ffc 100644 --- a/src/src/malware.c +++ b/src/src/malware.c @@ -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; } @@ -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)