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

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


details:   http://hg.dovecot.org/dovecot-1.0/rev/a0c3daf7e501
changeset: 5383:a0c3daf7e501
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Aug 13 18:00:18 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 59882181925a -r a0c3daf7e501 src/lib-auth/auth-server-request.c
--- a/src/lib-auth/auth-server-request.c	Mon Aug 13 17:51:41 2007 +0300
+++ b/src/lib-auth/auth-server-request.c	Mon Aug 13 18:00:18 2007 +0300
@@ -320,6 +320,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,
@@ -360,10 +362,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