From 60282f00ebd21c7f669280da7e8203402ddf39b7 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Tue, 5 Mar 2019 02:56:52 +0100 Subject: [PATCH] lib-master: master-login-auth - Make sure connection is disconnected upon error. --- src/lib-master/master-login-auth.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib-master/master-login-auth.c b/src/lib-master/master-login-auth.c index 0e76f9632f..e5fa6b60ed 100644 --- a/src/lib-master/master-login-auth.c +++ b/src/lib-master/master-login-auth.c @@ -183,6 +183,8 @@ master_login_auth_fail(struct master_login_auth *auth, if (reason == NULL) reason = "Disconnected from auth server, aborting"; + if (auth->connected) + connection_disconnect(&auth->conn); auth->connected = FALSE; while (auth->request_head != NULL) { @@ -202,7 +204,6 @@ master_login_auth_fail(struct master_login_auth *auth, void master_login_auth_disconnect(struct master_login_auth *auth) { - connection_disconnect(&auth->conn); master_login_auth_fail(auth, NULL); } @@ -245,8 +246,6 @@ static void master_login_auth_destroy(struct connection *_conn) struct master_login_auth *auth = container_of(_conn, struct master_login_auth, conn); - auth->connected = FALSE; - switch (_conn->disconnect_reason) { case CONNECTION_DISCONNECT_HANDSHAKE_FAILED: master_login_auth_fail(auth,