From: Stephan Bosch Date: Fri, 2 Nov 2018 09:37:22 +0000 (+0100) Subject: submission: client: Properly handle a multi-line reason string in client_disconnect(). X-Git-Tag: 2.3.5~44 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8b60a188f658f36f9de79a7dba4e33b4d7d2e0c8;p=thirdparty%2Fdovecot%2Fcore.git 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. --- 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;