aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/dovecot2/Makefile1
-rw-r--r--mail/dovecot2/files/patch-fix-ntlm_auth36
2 files changed, 37 insertions, 0 deletions
diff --git a/mail/dovecot2/Makefile b/mail/dovecot2/Makefile
index 7d113c946a75..2d6b16822a0e 100644
--- a/mail/dovecot2/Makefile
+++ b/mail/dovecot2/Makefile
@@ -14,6 +14,7 @@
PORTNAME= dovecot
PORTVERSION= 2.2.29.1
+PORTREVISION= 1
CATEGORIES= mail ipv6
MASTER_SITES= https://www.dovecot.org/releases/${PORTVERSION:R:R}/
PKGNAMESUFFIX= 2
diff --git a/mail/dovecot2/files/patch-fix-ntlm_auth b/mail/dovecot2/files/patch-fix-ntlm_auth
new file mode 100644
index 000000000000..28e104058b23
--- /dev/null
+++ b/mail/dovecot2/files/patch-fix-ntlm_auth
@@ -0,0 +1,36 @@
+From a319c3201bff1ea7bae3e7ab1fae42e9c4759056 Mon Sep 17 00:00:00 2001
+From: Andriy Syrovenko <andriys@gmail.com>
+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 4a65696..c12fb5e 100644
+--- src/auth/mech-winbind.c
++++ 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;
+ }
+