From f79745dae4a9a5fca33320e03a4fc9064b88d01e Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@dovecot.fi>
Date: Tue, 12 Mar 2019 03:18:33 +0100
Subject: [PATCH 2/3] submission-login: client-authenticate - Fix crash
 occurring when client disconnects during authentication.

---
 src/submission-login/client-authenticate.c | 3 +++
 src/submission-login/client.c              | 1 +
 2 files changed, 4 insertions(+)

diff --git a/src/submission-login/client-authenticate.c b/src/submission-login/client-authenticate.c
index 8b5422f83..6b70701a1 100644
--- a/src/submission-login/client-authenticate.c
+++ b/src/submission-login/client-authenticate.c
@@ -98,6 +98,9 @@ void submission_client_auth_result(struct client *client,
 		container_of(client, struct submission_client, common);
 	struct smtp_server_cmd_ctx *cmd = subm_client->pending_auth;
 
+	if (subm_client->conn == NULL)
+		return;
+
 	subm_client->pending_auth = NULL;
 	i_assert(cmd != NULL);
 
diff --git a/src/submission-login/client.c b/src/submission-login/client.c
index 3e45e556c..20b773b9e 100644
--- a/src/submission-login/client.c
+++ b/src/submission-login/client.c
@@ -212,6 +212,7 @@ static void client_connection_disconnect(void *context, const char *reason)
 {
 	struct submission_client *client = context;
 
+	client->pending_auth = NULL;
 	client_disconnect(&client->common, reason);
 }
 
-- 
2.11.0

