From: Stephan Bosch Date: Tue, 27 Oct 2020 22:16:44 +0000 (+0100) Subject: lib-smtp: smtp-server-connection - Make sure output stream errors are handled. X-Git-Tag: 2.3.13~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=184a9526e5f3a40e4c6fc2924dd78087bd54b815;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-server-connection - Make sure output stream errors are handled. --- diff --git a/src/lib-smtp/smtp-server-connection.c b/src/lib-smtp/smtp-server-connection.c index 7d30d5bc09..e4e9ee7f35 100644 --- a/src/lib-smtp/smtp-server-connection.c +++ b/src/lib-smtp/smtp-server-connection.c @@ -748,10 +748,11 @@ static int smtp_server_connection_output(struct smtp_server_connection *conn) smtp_server_connection_timeout_reset(conn); smtp_server_connection_send_replies(conn); } - if (ret >= 0 && !conn->corked && conn->conn.output != NULL) { + if (ret >= 0 && !conn->corked && conn->conn.output != NULL) ret = o_stream_uncork_flush(conn->conn.output); - if (ret < 0) - smtp_server_connection_handle_output_error(conn); + if (conn->conn.output != NULL && conn->conn.output->closed) { + smtp_server_connection_handle_output_error(conn); + ret = -1; } smtp_server_connection_unref(&conn); return ret;