X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fregex.c;h=66372960f2bf3f8cdce904e7efcfffb527d5808f;hb=39e02651ac166a6f5c8dc30070e9cca309570280;hp=3852ad8c52a68427651bd4b9708cb54b03aab6ff;hpb=10a831a31f38ad32dcf140ac50178b845a60a126;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/regex.c b/src/src/regex.c index 3852ad8c5..66372960f 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 2016 - 2018 + */ /* 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;