--- exim-4.31-orig/src/acl.c Wed Apr 7 19:03:55 2004 +++ exim-4.31/src/acl.c Wed Apr 7 18:55:29 2004 @@ -1070,6 +1070,7 @@ uschar *user_message = NULL; uschar *log_message = NULL; int rc = OK; +int sep = '/'; for (; cb != NULL; cb = cb->next) { @@ -1252,7 +1253,21 @@ break; case ACLC_MALWARE: - rc = malware(&arg); + { + /* Seperate the regular expression and any optional parameters. */ + uschar *ss = string_nextinlist(&arg, &sep, big_buffer, big_buffer_size); + /* Run the malware backend. */ + rc = malware(&ss); + /* Modify return code based upon the existance of options. */ + while ((ss = string_nextinlist(&arg, &sep, big_buffer, big_buffer_size)) + != NULL) { + if (strcmpic(ss, US"defer_ok") == 0 && rc == DEFER) + { + /* FAIL so that the message is passed to the next ACL */ + rc = FAIL; + } + } + } break; case ACLC_SPAM: