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