From 94d99972a53f572be958debaaaa05f2e26df7955 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Fri, 11 May 2018 19:26:45 +0200 Subject: [PATCH] lib-smtp: server: DATA command: Restore input handling upon failure. Fixes command hanging upon failure during data transfer. --- src/lib-smtp/smtp-server-cmd-data.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib-smtp/smtp-server-cmd-data.c b/src/lib-smtp/smtp-server-cmd-data.c index 44f5303163..4c95fb28e6 100644 --- a/src/lib-smtp/smtp-server-cmd-data.c +++ b/src/lib-smtp/smtp-server-cmd-data.c @@ -119,7 +119,11 @@ static void cmd_data_destroy(struct smtp_server_cmd_ctx *cmd) static void cmd_data_replied(struct smtp_server_cmd_ctx *cmd) { + struct smtp_server_command *command = cmd->cmd; + smtp_server_command_input_lock(cmd); + if (!smtp_server_command_replied_success(command)) + smtp_server_command_input_unlock(cmd); } static void cmd_data_completed(struct smtp_server_cmd_ctx *cmd)