From bc9681ee5c55a738ea512bc771a0c23e8e3e1994 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Tue, 24 Mar 2020 12:13:43 +0100 Subject: [PATCH] lib-smtp: smtp-server-command - Guarantee that non-destroy hooks aren't called for an ended command. --- src/lib-smtp/smtp-server-command.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib-smtp/smtp-server-command.c b/src/lib-smtp/smtp-server-command.c index 1ae190e373..c9b551b6ac 100644 --- a/src/lib-smtp/smtp-server-command.c +++ b/src/lib-smtp/smtp-server-command.c @@ -394,8 +394,11 @@ bool smtp_server_command_call_hooks(struct smtp_server_command **_cmd, struct smtp_server_command *cmd = *_cmd; struct smtp_server_command_hook *hook; - if (type != SMTP_SERVER_COMMAND_HOOK_DESTROY) + if (type != SMTP_SERVER_COMMAND_HOOK_DESTROY) { + if (cmd->state >= SMTP_SERVER_COMMAND_STATE_FINISHED) + return FALSE; smtp_server_command_ref(cmd); + } hook = cmd->hooks_head; while (hook != NULL) { -- 2.47.3