From 41b9adcb2dea5a78b49f2de759d966cf921f9b62 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@dovecot.fi> Date: Sun, 26 Aug 2018 17:26:05 +0200 Subject: [PATCH] plugins: imap-filter-sieve: Fix assertion panic occurring after script compile error. Compile errors occurring for Sieve scripts uploaded in multiple TCP frames were not handled correctly. --- src/plugins/imap-filter-sieve/cmd-filter-sieve.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/plugins/imap-filter-sieve/cmd-filter-sieve.c b/src/plugins/imap-filter-sieve/cmd-filter-sieve.c index 8e85a92eb..0d0e77c5b 100644 --- a/src/plugins/imap-filter-sieve/cmd-filter-sieve.c +++ b/src/plugins/imap-filter-sieve/cmd-filter-sieve.c @@ -316,18 +316,11 @@ cmd_filter_sieve_script_parse_value(struct client_command_context *cmd) if (ctx->script_input != NULL) { if ((ret=cmd_filter_sieve_script_read_stream(ctx)) == 0) return FALSE; - if (ret < 0) { - imap_filter_deinit(ctx); - return TRUE; - } - - imap_parser_reset(ctx->parser); - cmd->func = imap_filter_search; - return imap_filter_search(cmd); + } else { + if ((ret=cmd_filter_sieve_script_parse_value_arg(ctx)) == 0) + return FALSE; } - if ((ret=cmd_filter_sieve_script_parse_value_arg(ctx)) == 0) - return FALSE; if (ret < 0) { /* already sent the error to client */ ; imap_filter_deinit(ctx); -- GitLab