]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: server: DATA command: Restore input handling upon failure.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Fri, 11 May 2018 17:26:45 +0000 (19:26 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Mon, 28 May 2018 06:16:13 +0000 (09:16 +0300)
Fixes command hanging upon failure during data transfer.

src/lib-smtp/smtp-server-cmd-data.c

index 44f53031633b0e182f6245a3987238cf1d85651c..4c95fb28e609ae7be475ac72c7aef54f80c83547 100644 (file)
@@ -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)