From dd818416df6f57b497d353b45f5f5e347d8edf93 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Wed, 27 Aug 2025 17:03:19 +0200 Subject: [PATCH] lib-smtp: smtp-server-cmd-data - Properly block pipeline upon final DATA/BDAT command Never process the next transaction from the input when the current one is not finished. --- src/lib-smtp/smtp-server-cmd-data.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib-smtp/smtp-server-cmd-data.c b/src/lib-smtp/smtp-server-cmd-data.c index 7302e06a61..01be880379 100644 --- a/src/lib-smtp/smtp-server-cmd-data.c +++ b/src/lib-smtp/smtp-server-cmd-data.c @@ -521,6 +521,7 @@ void smtp_server_cmd_data(struct smtp_server_cmd_ctx *cmd, } smtp_server_command_input_lock(cmd); + smtp_server_command_pipeline_block(cmd); data_cmd = p_new(cmd->pool, struct cmd_data_context, 1); data_cmd->chunk_first = TRUE; @@ -605,6 +606,7 @@ int smtp_server_connection_data_chunk_add(struct smtp_server_cmd_ctx *cmd, smtp_server_command_add_hook( command, SMTP_SERVER_COMMAND_HOOK_REPLIED, cmd_data_replied, data_cmd); + smtp_server_command_pipeline_block(cmd); } data_cmd->chunk_input = chunk; -- 2.47.3