dovecot-2.2: auth: Don't check client PID in non-login auth sock...

dovecot at dovecot.org dovecot at dovecot.org
Sun May 20 03:26:29 EEST 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/23ed09ca847a
changeset: 14363:23ed09ca847a
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Mar 21 13:43:56 2012 +0200
description:
auth: Don't check client PID in non-login auth sockets.
This fixes PID conflict errors when using TCP auth sockets for e.g. MTAs.

diffstat:

 src/auth/auth-client-connection.c |  11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diffs (21 lines):

diff -r 03499202690f -r 23ed09ca847a src/auth/auth-client-connection.c
--- a/src/auth/auth-client-connection.c	Wed Mar 21 12:08:32 2012 +0200
+++ b/src/auth/auth-client-connection.c	Wed Mar 21 13:43:56 2012 +0200
@@ -95,7 +95,16 @@
 		return FALSE;
 	}
 
-	old = auth_client_connection_lookup(pid);
+	if (conn->login_requests)
+		old = auth_client_connection_lookup(pid);
+	else {
+		/* the client is only authenticating, not logging in.
+		   the PID isn't necessary, and since we allow authentication
+		   via TCP sockets the PIDs may conflict, so ignore them. */
+		old = NULL;
+		pid = 0;
+	}
+
 	if (old != NULL) {
 		/* already exists. it's possible that it just reconnected,
 		   see if the old connection is still there. */


More information about the dovecot-cvs mailing list