From 6aecd3178c12d0e3f176979920c6515ac0fda8ca Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@dovecot.fi>
Date: Tue, 18 Sep 2018 22:39:38 +0200
Subject: [PATCH] plugins: imap-filter-sieve: Make sure user gets to see at
 least one error when script execution fails.

---
 src/plugins/imap-filter-sieve/imap-filter-sieve.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
index 8b0d54da0..637de53f5 100644
--- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
@@ -937,6 +937,12 @@ int imap_sieve_filter_run_mail(struct imap_filter_sieve_context *sctx,
 	if (trace_log != NULL)
 		sieve_trace_log_free(&trace_log);
 
+	if (ret < 0 || str_len(sctx->errors) == 0) {
+		/* Failed, but no user error was logged: log a generic internal
+		   error instead. */
+		sieve_internal_error(user_ehandler, NULL, NULL);
+	}
+
 	*have_warnings_r = (sieve_get_warnings(user_ehandler) > 0);
 	*have_changes_r = estatus.significant_action_executed;
 	*errors_r = sctx->errors;
-- 
GitLab