dovecot: If sending auth request to dovecot-auth fails, don't cr...

dovecot at dovecot.org dovecot at dovecot.org
Mon Aug 13 18:00:28 EEST 2007


details:   http://hg.dovecot.org/dovecot/rev/b04d136f8174
changeset: 6290:b04d136f8174
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Aug 13 18:00:19 2007 +0300
description:
If sending auth request to dovecot-auth fails, don't crash.

diffstat:

1 file changed, 7 insertions(+), 3 deletions(-)
src/lib-auth/auth-server-request.c |   10 +++++++---

diffs (28 lines):

diff -r 4a57baddc8b8 -r b04d136f8174 src/lib-auth/auth-server-request.c
--- 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 @@ auth_client_request_new(struct auth_clie
 	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 @@ auth_client_request_new(struct auth_clie
 	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;
 }
 


More information about the dovecot-cvs mailing list