From 9f09b81e666844727c46089b32e7facea4859a0a Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@dovecot.fi> Date: Thu, 29 Mar 2018 00:07:47 +0200 Subject: [PATCH] lda-sieve plugin: Do not execute the sieve_discard script when an error occurs. --- src/plugins/lda-sieve/lda-sieve-plugin.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index c6cf1d8c0..067172415 100644 --- a/src/plugins/lda-sieve/lda-sieve-plugin.c +++ b/src/plugins/lda-sieve/lda-sieve-plugin.c @@ -436,6 +436,8 @@ lda_sieve_execute_script(struct lda_sieve_run_context *srctx, bool debug = srctx->mdctx->rcpt_user->mail_debug; bool user_script, more; + *error_r = SIEVE_ERROR_NONE; + user_script = ( script == srctx->user_script ); if ( user_script ) { @@ -581,6 +583,8 @@ static int lda_sieve_execute_scripts /* End of normal script sequence */ break; } + } else if ( error != SIEVE_ERROR_NONE ) { + break; } else if ( sieve_multiscript_will_discard(mscript) && srctx->discard_script != NULL ) { /* Mail is set to be discarded, but we have a discard script. */ -- GitLab