changeset 6290:b04d136f8174 HEAD

If sending auth request to dovecot-auth fails, don't crash.
author Timo Sirainen <tss@iki.fi>
date Mon, 13 Aug 2007 18:00:19 +0300
parents 4a57baddc8b8
children 2f960cea48b1
files src/lib-auth/auth-server-request.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-auth/auth-server-request.c	Mon Aug 13 17:19:59 2007 +0300
+++ b/src/lib-auth/auth-server-request.c	Mon Aug 13 18:00:19 2007 +0300
@@ -326,6 +326,8 @@
 	struct auth_server_connection *conn;
 	struct auth_request *request;
 
+	*error_r = "Temporary authentication failure.";
+
 	if (id == NULL) {
 		conn = auth_server_connection_find_mech(client,
 							request_info->mech,
@@ -365,10 +367,12 @@
 	request->callback = callback;
 	request->context = context;
 
-	hash_insert(conn->requests, POINTER_CAST(request->id), request);
-
-	if (auth_server_send_new_request(conn, request, error_r) < 0)
+	if (auth_server_send_new_request(conn, request, error_r) == 0)
+		hash_insert(conn->requests, POINTER_CAST(request->id), request);
+	else {
+		auth_client_request_free(request);
 		request = NULL;
+	}
 	return request;
 }