From 3d6b8ea7b57071c80db4145ac6db3b477d39d7a9 Mon Sep 17 00:00:00 2001 From: Andriy Syrovenko Date: Mon, 17 Apr 2017 01:14:02 +0300 Subject: [PATCH] auth: Fixed dovecot/auth hanging when child ntlm_auth crashes while processing an authentication request --- src/auth/mech-winbind.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/auth/mech-winbind.c b/src/auth/mech-winbind.c index 4a65696105..c12fb5effd 100644 --- a/src/auth/mech-winbind.c +++ b/src/auth/mech-winbind.c @@ -187,12 +187,18 @@ do_auth_continue(struct auth_request *auth_request, request->continued = FALSE; while ((answer = i_stream_read_next_line(in_pipe)) == NULL) { - if (in_pipe->stream_errno != 0) + if (in_pipe->stream_errno != 0 || in_pipe->eof) break; } if (answer == NULL) { - auth_request_log_error(auth_request, AUTH_SUBSYS_MECH, - "read(in_pipe) failed: %m"); + if (in_pipe->stream_errno != 0) { + auth_request_log_error(auth_request, AUTH_SUBSYS_MECH, + "read(in_pipe) failed: %m"); + } else { + auth_request_log_error(auth_request, AUTH_SUBSYS_MECH, + "read(in_pipe) failed: " + "unexpected end of file"); + } return HR_RESTART; }