]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-auth: Don't crash if callback destroys the auth client.
authorTimo Sirainen <tss@iki.fi>
Tue, 10 Nov 2009 20:07:12 +0000 (15:07 -0500)
committerTimo Sirainen <tss@iki.fi>
Tue, 10 Nov 2009 20:07:12 +0000 (15:07 -0500)
--HG--
branch : HEAD

src/lib-auth/auth-server-connection.c

index 3841efb0540ad1a5a7405e9095a8235fb26ce61c..b0b343d604ff89821e3edb959c63ca5e0183a79b 100644 (file)
@@ -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 *