From b6e1d85292485a7fb4cfa5f40dd1ec131ab07cc1 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 10 Nov 2009 15:07:12 -0500 Subject: [PATCH] lib-auth: Don't crash if callback destroys the auth client. --HG-- branch : HEAD --- src/lib-auth/auth-server-connection.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib-auth/auth-server-connection.c b/src/lib-auth/auth-server-connection.c index 3841efb054..b0b343d604 100644 --- a/src/lib-auth/auth-server-connection.c +++ b/src/lib-auth/auth-server-connection.c @@ -229,6 +229,7 @@ auth_server_connection_input_line(struct auth_server_connection *conn, 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(struct auth_server_connection *conn) 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(struct auth_server_connection *conn) break; } } + i_stream_unref(&input); } struct auth_server_connection * -- 2.47.3