From: Timo Sirainen Date: Thu, 7 May 2020 09:58:14 +0000 (+0300) Subject: submission-proxy: Add asserts to clarify pending_auth's lifetime X-Git-Tag: 2.3.13~663 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b4bfd8ab6f22acab7747416b7f14aa8359193e84;p=thirdparty%2Fdovecot%2Fcore.git submission-proxy: Add asserts to clarify pending_auth's lifetime --- diff --git a/src/submission-login/submission-proxy.c b/src/submission-login/submission-proxy.c index 37dae6aca7..3fa99577f7 100644 --- a/src/submission-login/submission-proxy.c +++ b/src/submission-login/submission-proxy.c @@ -391,10 +391,9 @@ int submission_proxy_parse_line(struct client *client, const char *line) return 0; } - if (subm_client->proxy_reply == NULL) { - subm_client->proxy_reply = smtp_server_reply_create( - command, status, enh_code); - } + i_assert(subm_client->proxy_reply == NULL); + subm_client->proxy_reply = smtp_server_reply_create( + command, status, enh_code); smtp_server_reply_add_text(subm_client->proxy_reply, text); if (!last_line) @@ -462,10 +461,7 @@ submission_proxy_send_failure_reply(struct submission_client *subm_client, const char *reason ATTR_UNUSED) { struct smtp_server_cmd_ctx *cmd = subm_client->pending_auth; - if (cmd == NULL) - return; - subm_client->pending_auth = NULL; switch (type) { case LOGIN_PROXY_FAILURE_TYPE_CONNECT: case LOGIN_PROXY_FAILURE_TYPE_INTERNAL: @@ -473,10 +469,13 @@ submission_proxy_send_failure_reply(struct submission_client *subm_client, case LOGIN_PROXY_FAILURE_TYPE_REMOTE: case LOGIN_PROXY_FAILURE_TYPE_REMOTE_CONFIG: case LOGIN_PROXY_FAILURE_TYPE_PROTOCOL: + i_assert(cmd != NULL); + subm_client->pending_auth = NULL; smtp_server_reply(cmd, 454, "4.7.0", LOGIN_PROXY_FAILURE_MSG); break; case LOGIN_PROXY_FAILURE_TYPE_AUTH: /* reply was already sent */ + i_assert(cmd == NULL); break; } }