From: Timo Sirainen Date: Fri, 23 Jul 2010 17:05:26 +0000 (+0100) Subject: director: If doveadm connection disconnects before handshake, don't loop forever. X-Git-Tag: 2.0.rc4~41 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d2cadbf5445156fc12988506279d51d0e53b0449;p=thirdparty%2Fdovecot%2Fcore.git director: If doveadm connection disconnects before handshake, don't loop forever. --- 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)) {