]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-server-connection - Make sure output stream errors are handled.
authorStephan Bosch <stephan.bosch@open-xchange.com>
Tue, 27 Oct 2020 22:16:44 +0000 (23:16 +0100)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Thu, 5 Nov 2020 12:14:52 +0000 (12:14 +0000)
src/lib-smtp/smtp-server-connection.c

index 7d30d5bc0935ec7f6903a7bc61a2a216e2f85f7c..e4e9ee7f35fa05478ac2f99e180c38b4b7e79f0d 100644 (file)
@@ -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;