From c43229645d87058b2f139336a72bc76ec35945ba Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Tue, 20 Apr 2021 02:07:23 +0200
Subject: [PATCH] lib-sieve: sieve-result - Prevent executing implicit keep
 upon resource limit transgression.

---
 src/lib-sieve/sieve-result.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib-sieve/sieve-result.c b/src/lib-sieve/sieve-result.c
index 98871be91..85dc5264b 100644
--- a/src/lib-sieve/sieve-result.c
+++ b/src/lib-sieve/sieve-result.c
@@ -1476,7 +1476,9 @@ int sieve_result_execute(struct sieve_result *result, bool last, bool *keep,
 	/* Perform implicit keep if necessary */
 
 	result_status = status;
-	if (result->executed || status != SIEVE_EXEC_TEMP_FAILURE) {
+	if (result->executed ||
+	    (status != SIEVE_EXEC_TEMP_FAILURE &&
+	     status != SIEVE_EXEC_RESOURCE_LIMIT)) {
 		/* Execute implicit keep if the transaction failed or when the implicit
 		 * keep was not canceled during transaction.
 		 */
-- 
GitLab