dovecot-2.0: auth: Keep master connection referenced during USER...

dovecot at dovecot.org dovecot at dovecot.org
Thu Jun 25 20:25:53 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/270c07cf45b6
changeset: 9529:270c07cf45b6
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jun 25 13:25:46 2009 -0400
description:
auth: Keep master connection referenced during USER lookups.
Fixes a crash when master disconnected before USER lookup was finished.

diffstat:

1 file changed, 2 insertions(+)
src/auth/auth-master-connection.c |    2 ++

diffs (19 lines):

diff -r d8556f68f6a7 -r 270c07cf45b6 src/auth/auth-master-connection.c
--- a/src/auth/auth-master-connection.c	Wed Jun 24 16:54:06 2009 -0400
+++ b/src/auth/auth-master-connection.c	Thu Jun 25 13:25:46 2009 -0400
@@ -125,6 +125,7 @@ user_callback(enum userdb_result result,
 	str_append_c(str, '\n');
 	(void)o_stream_send(conn->output, str_data(str), str_len(str));
 	auth_request_unref(&auth_request);
+	auth_master_connection_unref(&conn);
 }
 
 static bool
@@ -143,6 +144,7 @@ master_input_user(struct auth_master_con
 	auth_request = auth_request_new_dummy(conn->auth);
 	auth_request->id = (unsigned int)strtoul(list[0], NULL, 10);
 	auth_request->context = conn;
+	auth_master_connection_ref(conn);
 
 	if (!auth_request_set_username(auth_request, list[1], &error)) {
                 auth_request_log_info(auth_request, "userdb", "%s", error);


More information about the dovecot-cvs mailing list