From 7da1a76d2bff5f43aee2733333d3b1f25907cb87 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sat, 22 Dec 2012 22:27:34 +0100 Subject: [PATCH] lib-sieve: Prevent passing NULL sender to raw mail storage when active message is substituted. --- src/lib-sieve/sieve-config.h | 2 ++ src/lib-sieve/sieve-message.c | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib-sieve/sieve-config.h b/src/lib-sieve/sieve-config.h index e7158ad4a..362b4f077 100644 --- a/src/lib-sieve/sieve-config.h +++ b/src/lib-sieve/sieve-config.h @@ -11,4 +11,6 @@ #define SIEVE_SCRIPT_FILEEXT "sieve" #define SIEVE_BINARY_FILEEXT "svbin" +#define DEFAULT_ENVELOPE_SENDER "MAILER-DAEMON" + #endif diff --git a/src/lib-sieve/sieve-message.c b/src/lib-sieve/sieve-message.c index fe9bf53e2..05e9b273e 100644 --- a/src/lib-sieve/sieve-message.c +++ b/src/lib-sieve/sieve-message.c @@ -357,6 +357,7 @@ int sieve_message_substitute struct sieve_message_version *version; struct mailbox_header_lookup_ctx *headers_ctx; struct mailbox *box = NULL; + const char *sender; int ret; if ( msgctx->raw_mail_user == NULL ) { @@ -367,8 +368,10 @@ int sieve_message_substitute } i_stream_seek(input, 0); + sender = sieve_message_get_sender(msgctx); + sender = (sender == NULL ? DEFAULT_ENVELOPE_SENDER : sender ); ret = raw_mailbox_alloc_stream(msgctx->raw_mail_user, input, (time_t)-1, - sieve_message_get_sender(msgctx), &box); + sender, &box); if ( ret < 0 ) { sieve_sys_error(msgctx->svinst, "can't open substituted mail as raw: %s", -- GitLab