From: Stephan Bosch Date: Thu, 19 Jun 2025 10:02:03 +0000 (+0200) Subject: lib-smtp: smtp-client-command - Make smtp_client_command_drop_callback(NULL) a no-op X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e005e375f6ff1487b84d60f9f66120afb1c653c9;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-client-command - Make smtp_client_command_drop_callback(NULL) a no-op --- diff --git a/src/lib-smtp/smtp-client-command.c b/src/lib-smtp/smtp-client-command.c index 05757ee9d7..f4f17f1d4d 100644 --- a/src/lib-smtp/smtp-client-command.c +++ b/src/lib-smtp/smtp-client-command.c @@ -286,6 +286,8 @@ void smtp_client_command_abort(struct smtp_client_command **_cmd) void smtp_client_command_drop_callback(struct smtp_client_command *cmd) { + if (cmd == NULL) + return; cmd->callback = NULL; cmd->context = NULL; } diff --git a/src/lib-smtp/smtp-client-transaction.c b/src/lib-smtp/smtp-client-transaction.c index f1430676ad..ad0cac08e8 100644 --- a/src/lib-smtp/smtp-client-transaction.c +++ b/src/lib-smtp/smtp-client-transaction.c @@ -696,17 +696,13 @@ void smtp_client_transaction_destroy(struct smtp_client_transaction **_trans) We cannot fully abort (destroy) these commands, as this may be called from a callback. */ for (mail = trans->mail_head; mail != NULL; mail = mail->next) { - if (mail->cmd_mail_from != NULL) - smtp_client_command_drop_callback(mail->cmd_mail_from); + smtp_client_command_drop_callback(mail->cmd_mail_from); } for (rcpt = trans->rcpts_queue_head; rcpt != NULL; rcpt = rcpt->next) { - if (rcpt->cmd_rcpt_to != NULL) - smtp_client_command_drop_callback(rcpt->cmd_rcpt_to); + smtp_client_command_drop_callback(rcpt->cmd_rcpt_to); } - if (trans->cmd_data != NULL) - smtp_client_command_drop_callback(trans->cmd_data); - if (trans->cmd_rset != NULL) - smtp_client_command_drop_callback(trans->cmd_rset); + smtp_client_command_drop_callback(trans->cmd_data); + smtp_client_command_drop_callback(trans->cmd_rset); smtp_client_command_abort(&trans->cmd_plug); /* Free any approved recipients early */