dovecot-2.2: doveadm: If doveadm-server sends broken input, disc...

dovecot at dovecot.org dovecot at dovecot.org
Sun Feb 24 19:39:13 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/8e54e73bdade
changeset: 15923:8e54e73bdade
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Feb 24 19:38:27 2013 +0200
description:
doveadm: If doveadm-server sends broken input, disconnect.

diffstat:

 src/doveadm/server-connection.c |  15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diffs (32 lines):

diff -r b2bc9dd5f8d9 -r 8e54e73bdade src/doveadm/server-connection.c
--- a/src/doveadm/server-connection.c	Sun Feb 24 19:37:45 2013 +0200
+++ b/src/doveadm/server-connection.c	Sun Feb 24 19:38:27 2013 +0200
@@ -139,8 +139,11 @@
 	str = t_str_new(128);
 	for (i = start = 0; i < size; i++) {
 		if (data[i] == '\n') {
-			if (i != start)
-				i_error("doveadm server sent broken input");
+			if (i != start) {
+				i_error("doveadm server sent broken print input");
+				server_connection_destroy(&conn);
+				return;
+			}
 			conn->state = SERVER_REPLY_STATE_RET;
 			i_stream_skip(conn->input, i + 1);
 
@@ -267,8 +270,12 @@
 				SERVER_CMD_REPLY_UNKNOWN_USER :
 				SERVER_CMD_REPLY_FAIL;
 			server_connection_callback(conn, reply);
-		} else
-			i_error("doveadm server sent broken input");
+		} else {
+			i_error("doveadm server sent broken input "
+				"(expected cmd reply): %s", line);
+			server_connection_destroy(&conn);
+			break;
+		}
 		if (conn->callback == NULL) {
 			/* we're finished, close the connection */
 			server_connection_destroy(&conn);


More information about the dovecot-cvs mailing list