From: Stephan Bosch Date: Mon, 9 Nov 2020 01:29:04 +0000 (+0100) Subject: lib-smtp: smtp-server-cmd-rset - Stop processing pipeline until RSET is complete. X-Git-Tag: 2.3.19~130 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a53380c353f9c327e7b09a64ef1ba9a47e8de3bb;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-server-cmd-rset - Stop processing pipeline until RSET is complete. A subsequent MAIL command could get reset in the middle otherwise. Before, it only blocked input until a reply was submitted, but the transaction isn't reset until the RSET command is complete (just before actually sending the reply) which can cause issues when the subsequent MAIL command is already being processed. --- diff --git a/src/lib-smtp/smtp-server-cmd-rset.c b/src/lib-smtp/smtp-server-cmd-rset.c index 6446a418ac..b07478b8e7 100644 --- a/src/lib-smtp/smtp-server-cmd-rset.c +++ b/src/lib-smtp/smtp-server-cmd-rset.c @@ -39,7 +39,7 @@ void smtp_server_cmd_rset(struct smtp_server_cmd_ctx *cmd, return; } - smtp_server_command_input_lock(cmd); + smtp_server_command_pipeline_block(cmd); smtp_server_command_add_hook(command, SMTP_SERVER_COMMAND_HOOK_COMPLETED, cmd_rset_completed, NULL);