From d2cadbf5445156fc12988506279d51d0e53b0449 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 23 Jul 2010 18:05:26 +0100 Subject: [PATCH] director: If doveadm connection disconnects before handshake, don't loop forever. --- src/director/doveadm-connection.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/director/doveadm-connection.c b/src/director/doveadm-connection.c index 8bc805844a..b875576f70 100644 --- a/src/director/doveadm-connection.c +++ b/src/director/doveadm-connection.c @@ -235,8 +235,11 @@ static void doveadm_connection_input(struct doveadm_connection *conn) bool ret = TRUE; if (!conn->handshaked) { - if ((line = i_stream_read_next_line(conn->input)) == NULL) + if ((line = i_stream_read_next_line(conn->input)) == NULL) { + if (conn->input->eof || conn->input->stream_errno != 0) + doveadm_connection_deinit(&conn); return; + } if (!version_string_verify(line, "director-doveadm", DOVEADM_PROTOCOL_VERSION_MAJOR)) { -- 2.47.3