From 8b60a188f658f36f9de79a7dba4e33b4d7d2e0c8 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Fri, 2 Nov 2018 10:37:22 +0100 Subject: [PATCH] submission: client: Properly handle a multi-line reason string in client_disconnect(). Pass the multi-line string to smtp_server_connection_terminate(), yet log it as a single line. --- src/submission/submission-client.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/submission/submission-client.c b/src/submission/submission-client.c index e3e2b1f35b..4d7f1dd8fb 100644 --- a/src/submission/submission-client.c +++ b/src/submission/submission-client.c @@ -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; -- 2.47.3