]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm-server: Deinitialize log proxying before closing SSL iostream
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 31 Oct 2017 18:05:19 +0000 (20:05 +0200)
committerTimo Sirainen <tss@dovecot.fi>
Wed, 1 Nov 2017 00:22:19 +0000 (02:22 +0200)
Otherwise the SSL iostream destroying may trigger debug/error logging,
which attempts to proxy logs when the stream is already closed. This
caused a panic.

src/doveadm/client-connection-tcp.c

index e96a23b2e4fb4200914aea6a7bf66f4277f395af..65239322c347c322dcef41ed2fc7836aff292869 100644 (file)
@@ -597,13 +597,12 @@ client_connection_tcp_free(struct client_connection *_conn)
        doveadm_print_deinit();
        doveadm_print_ostream = NULL;
 
-       if (conn->ssl_iostream != NULL)
-               ssl_iostream_destroy(&conn->ssl_iostream);
-
        if (conn->log_out != NULL) {
                doveadm_server_restore_logs();
                o_stream_unref(&conn->log_out);
        }
+       if (conn->ssl_iostream != NULL)
+               ssl_iostream_destroy(&conn->ssl_iostream);
 
        io_remove(&conn->io);
        o_stream_destroy(&conn->output);