]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: client: Properly handle a multi-line reason string in client_disconnect().
authorStephan Bosch <stephan.bosch@dovecot.fi>
Fri, 2 Nov 2018 09:37:22 +0000 (10:37 +0100)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Tue, 12 Feb 2019 13:41:55 +0000 (15:41 +0200)
Pass the multi-line string to smtp_server_connection_terminate(), yet log it as a single line.

src/submission/submission-client.c

index e3e2b1f35b012a2916dc166a45642202f986af4b..4d7f1dd8fbf9171a25f6fd20af32b015fc748140 100644 (file)
@@ -448,6 +448,7 @@ void client_disconnect(struct client *client, const char *enh_code,
                       const char *reason)
 {
        struct smtp_server_connection *conn;
+       const char *log_reason;
 
        if (client->disconnected)
                return;
@@ -466,10 +467,12 @@ void client_disconnect(struct client *client, const char *enh_code,
        }
 
        if (reason == NULL)
-               reason = "Connection closed";
+               log_reason = reason = "Connection closed";
+       else
+               log_reason = t_str_oneline(reason);
        i_info("Disconnect from %s: %s %s (state=%s)",
               client_remote_id(client),
-              reason, client_stats(client),
+              log_reason, client_stats(client),
               client_state_get_name(client));
 
        conn = client->conn;