dovecot-2.0-sslstream: lib-auth: Don't crash if callback destroy...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 13 02:56:17 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0-sslstream/rev/9702da6d3b6a
changeset: 10300:9702da6d3b6a
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Nov 10 15:07:12 2009 -0500
description:
lib-auth: Don't crash if callback destroys the auth client.

diffstat:

1 file changed, 5 insertions(+), 1 deletion(-)
src/lib-auth/auth-server-connection.c |    6 +++++-

diffs (30 lines):

diff -r ea209b33ef96 -r 9702da6d3b6a src/lib-auth/auth-server-connection.c
--- a/src/lib-auth/auth-server-connection.c	Tue Nov 10 15:06:43 2009 -0500
+++ b/src/lib-auth/auth-server-connection.c	Tue Nov 10 15:07:12 2009 -0500
@@ -229,6 +229,7 @@ auth_server_connection_input_line(struct
 
 static void auth_server_connection_input(struct auth_server_connection *conn)
 {
+	struct istream *input;
 	const char *line;
 	int ret;
 
@@ -264,7 +265,9 @@ static void auth_server_connection_input
 		conn->version_received = TRUE;
 	}
 
-	while ((line = i_stream_next_line(conn->input)) != NULL) {
+	input = conn->input;
+	i_stream_ref(input);
+	while ((line = i_stream_next_line(input)) != NULL && !input->closed) {
 		T_BEGIN {
 			ret = auth_server_connection_input_line(conn, line);
 		} T_END;
@@ -274,6 +277,7 @@ static void auth_server_connection_input
 			break;
 		}
 	}
+	i_stream_unref(&input);
 }
 
 struct auth_server_connection *


More information about the dovecot-cvs mailing list