From 85680b40d0c7247fb3183c1f39c246f7299cdfd4 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@dovecot.fi> Date: Mon, 17 Oct 2016 23:59:58 +0200 Subject: [PATCH] lib-sieve: result object: Fixed bug in detection of the execution of delivery action. Sequential exections would override a previously flagged delivery, which is wrong. This caused the sieve_discard feature to trigger for messages that were actually delivered somewhere by an earlier script in the sequence. --- src/lib-sieve/sieve-result.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib-sieve/sieve-result.c b/src/lib-sieve/sieve-result.c index 6f7c62c4a..d960c34ef 100644 --- a/src/lib-sieve/sieve-result.c +++ b/src/lib-sieve/sieve-result.c @@ -1326,8 +1326,10 @@ static int sieve_result_transaction_commit_or_rollback if ( *implicit_keep && keep != NULL ) *keep = TRUE; - if ( commit_status == SIEVE_EXEC_OK ) - result->executed_delivery = seen_delivery; + if ( commit_status == SIEVE_EXEC_OK ) { + result->executed_delivery = + result->executed_delivery || seen_delivery; + } return commit_status; } -- GitLab