X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Fregex.c;h=605ae5d25124932097e759150244445150f3d237;hb=ec62d0a959f5b329009c68a008fbd8594b93c511;hp=3852ad8c52a68427651bd4b9708cb54b03aab6ff;hpb=10a831a31f38ad32dcf140ac50178b845a60a126;p=exim.git diff --git a/src/src/regex.c b/src/src/regex.c index 3852ad8c5..605ae5d25 100644 --- a/src/src/regex.c +++ b/src/src/regex.c @@ -2,8 +2,10 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) Tom Kistner 2003-2015 */ -/* License: GPL */ +/* Copyright (c) Tom Kistner 2003-2015 + * License: GPL + * Copyright (c) The Exim Maintainers 2017 + */ /* Code for matching regular expressions against headers and body. Called from acl.c. */ @@ -103,7 +105,7 @@ regex_match_string = NULL; if (!mime_stream) /* We are in the DATA ACL */ { - if (!(mbox_file = spool_mbox(&mbox_size, NULL))) + if (!(mbox_file = spool_mbox(&mbox_size, NULL, NULL))) { /* error while spooling */ log_write(0, LOG_MAIN|LOG_PANIC, "regex acl condition: error while creating mbox spool file"); @@ -112,7 +114,12 @@ if (!mime_stream) /* We are in the DATA ACL */ } else { - f_pos = ftell(mime_stream); + if ((f_pos = ftell(mime_stream)) < 0) + { + log_write(0, LOG_MAIN|LOG_PANIC, + "regex acl condition: mime_stream: %s", strerror(errno)); + return DEFER; + } mbox_file = mime_stream; } @@ -141,7 +148,12 @@ if (!mime_stream) else { clearerr(mime_stream); - fseek(mime_stream, f_pos, SEEK_SET); + if (fseek(mime_stream, f_pos, SEEK_SET) == -1) + { + log_write(0, LOG_MAIN|LOG_PANIC, + "regex acl condition: mime_stream: %s", strerror(errno)); + clearerr(mime_stream); + } } return ret;