From: Stephan Bosch Date: Fri, 25 Sep 2020 00:45:27 +0000 (+0200) Subject: lib-smtp: smtp-client-command - Drop callback before call in smtp_client_command_inpu... X-Git-Tag: 2.3.18~130 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c588b555416f2473b9e296c8d3b07da40f7590b9;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-client-command - Drop callback before call in smtp_client_command_input_reply(). --- diff --git a/src/lib-smtp/smtp-client-command.c b/src/lib-smtp/smtp-client-command.c index 203a4df7f2..61cd188343 100644 --- a/src/lib-smtp/smtp-client-command.c +++ b/src/lib-smtp/smtp-client-command.c @@ -952,6 +952,8 @@ int smtp_client_command_input_reply(struct smtp_client_command *cmd, const struct smtp_reply *reply) { struct smtp_client_connection *conn = cmd->conn; + smtp_client_command_callback_t *callback = cmd->callback; + void *context = cmd->context; bool finished; i_assert(cmd->replies_seen < cmd->replies_expected); @@ -982,13 +984,13 @@ int smtp_client_command_input_reply(struct smtp_client_command *cmd, cmd->state = SMTP_CLIENT_COMMAND_STATE_FINISHED; smtp_client_connection_update_cmd_timeout(conn); + smtp_client_command_drop_callback(cmd); } - if (!cmd->aborting && cmd->callback != NULL) - cmd->callback(reply, cmd->context); + if (!cmd->aborting && callback != NULL) + callback(reply, context); if (finished) { - smtp_client_command_drop_callback(cmd); smtp_client_command_unref(&cmd); smtp_client_connection_trigger_output(conn); }