dovecot-2.2: director: Don't assert-crash if PASS lookup fails.

dovecot at dovecot.org dovecot at dovecot.org
Fri Sep 20 09:46:48 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/b135d723acf3
changeset: 16785:b135d723acf3
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Sep 20 09:46:31 2013 +0300
description:
director: Don't assert-crash if PASS lookup fails.

diffstat:

 src/director/login-connection.c |  11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diffs (31 lines):

diff -r 3da7f0dad08f -r b135d723acf3 src/director/login-connection.c
--- a/src/director/login-connection.c	Fri Sep 20 04:27:29 2013 +0300
+++ b/src/director/login-connection.c	Fri Sep 20 09:46:31 2013 +0300
@@ -77,7 +77,7 @@
 {
 	struct login_host_request *request = context;
 	struct director *dir = request->conn->dir;
-	const char *line;
+	const char *line, *line_params;
 	unsigned int secs;
 
 	if (ip != NULL) {
@@ -85,11 +85,16 @@
 		line = t_strdup_printf("%s\thost=%s\tproxy_refresh=%u",
 				       request->line, net_ip2addr(ip), secs);
 	} else {
-		i_assert(strncmp(request->line, "OK\t", 3) == 0);
+		if (strncmp(request->line, "OK\t", 3) == 0)
+			line_params = request->line + 3;
+		else if (strncmp(request->line, "PASS\t", 5) == 0)
+			line_params = request->line + 5;
+		else
+			i_panic("BUG: Unexpected line: %s", request->line);
 
 		i_error("director: User %s host lookup failed: %s",
 			request->username, errormsg);
-		line = t_strconcat("FAIL\t", t_strcut(request->line + 3, '\t'),
+		line = t_strconcat("FAIL\t", t_strcut(line_params, '\t'),
 				   "\ttemp", NULL);
 	}
 	login_connection_send_line(request->conn, line);


More information about the dovecot-cvs mailing list