]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-server-cmd-data - Call smtp_server_transaction_last_data() earlier...
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sat, 16 Mar 2019 14:26:58 +0000 (15:26 +0100)
committerMartti Rannanjärvi <martti.rannanjarvi@open-xchange.com>
Wed, 25 Sep 2019 08:25:20 +0000 (11:25 +0300)
Makes sure rcpt->cmd is set before replies are being submitted.

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

index 76a0427a2212096226b057c1ae67005d168b8705..ddbdec15e592c34dfa5558d490b273907b6d3c41 100644 (file)
@@ -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;