From 8e8c289d2548903f6b79a3fb14a7ec1bddffb944 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Sat, 16 Mar 2019 15:26:58 +0100 Subject: [PATCH] lib-smtp: smtp-server-cmd-data - Call smtp_server_transaction_last_data() earlier for the DATA command. Makes sure rcpt->cmd is set before replies are being submitted. --- src/lib-smtp/smtp-server-cmd-data.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib-smtp/smtp-server-cmd-data.c b/src/lib-smtp/smtp-server-cmd-data.c index 76a0427a22..ddbdec15e5 100644 --- a/src/lib-smtp/smtp-server-cmd-data.c +++ b/src/lib-smtp/smtp-server-cmd-data.c @@ -456,12 +456,17 @@ cmd_data_start(struct smtp_server_cmd_ctx *cmd, struct cmd_data_context *data_cmd) { struct smtp_server_connection *conn = cmd->conn; + struct smtp_server_transaction *trans = conn->state.trans; struct istream *dot_input; /* called when all previous commands were finished */ i_assert(conn->state.pending_mail_cmds == 0 && conn->state.pending_rcpt_cmds == 0); + /* this is the one and only data command */ + if (trans != NULL) + smtp_server_transaction_last_data(trans, cmd); + /* check whether we have had successful mail and rcpt commands */ if (!smtp_server_connection_data_check_state(cmd)) return; -- 2.47.3