From 50dfe2604984a84480850dc743900f9d2d4a72e3 Mon Sep 17 00:00:00 2001
From: Timo Sirainen <timo.sirainen@open-xchange.com>
Date: Mon, 29 Apr 2019 15:00:39 +0300
Subject: [PATCH] plugins: imap-filter-sieve: Handle each mail in a separate
 data stack frame

Avoids growing memory usage excessively when filtering a lot of mails.
---
 src/plugins/imap-filter-sieve/imap-filter.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/plugins/imap-filter-sieve/imap-filter.c b/src/plugins/imap-filter-sieve/imap-filter.c
index 9e4152b34..8baadafcf 100644
--- a/src/plugins/imap-filter-sieve/imap-filter.c
+++ b/src/plugins/imap-filter-sieve/imap-filter.c
@@ -87,7 +87,11 @@ static bool imap_filter_more(struct client_command_context *cmd)
 
 	while (mailbox_search_next_nonblock(ctx->search_ctx,
 					    &mail, &tryagain)) {
-		if (!imap_filter_mail(cmd, mail))
+		bool ret;
+		T_BEGIN {
+			ret = imap_filter_mail(cmd, mail);
+		} T_END;
+		if (!ret)
 			break;
 	}
 	if (tryagain)
-- 
GitLab