File managesieve-login-code-cleanup.patch of Package dovecot22.12618
From c80aa7c25b0b4e61bb8e3a91864a355f7f2fa89f Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@dovecot.fi>
Date: Thu, 6 Jul 2017 12:34:08 +0200
Subject: [PATCH] managesieve-login: managesieve_client_input_next_cmd(): Fix
handling of command continuation.
Commands that continued after waiting for more input always failed.
This mainly applies to the AUTHENTICATE command, which mostly handles its own arguments.
This caused problems when a string literal was used as the initial response for the AUTHENTICATE command.
Caused by recent change:
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date: Wed Jun 14 12:39:02 2017 +0300
managesieve-login: managesieve_client_input_next_cmd() - minor code cleanup
---
src/managesieve-login/client.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Index: dovecot-2.2.31/dovecot-2.2-pigeonhole-0.4.19/src/managesieve-login/client.c
===================================================================
--- dovecot-2.2.31.orig/dovecot-2.2-pigeonhole-0.4.19/src/managesieve-login/client.c
+++ dovecot-2.2.31/dovecot-2.2-pigeonhole-0.4.19/src/managesieve-login/client.c
@@ -301,8 +301,10 @@ static bool managesieve_client_input_next_cmd(struct client *_client)
if ( args[0].type != MANAGESIEVE_ARG_EOL )
ret = -1;
}
- if (ret > 0)
- ret = client->cmd->func(client, args);
+ }
+ if (ret > 0) {
+ i_assert(client->cmd != NULL);
+ ret = client->cmd->func(client, args);
}
if (ret != 0)