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