dovecot-2.2: imap: Fixed assert-crash if client disconnected at ...

dovecot at dovecot.org dovecot at dovecot.org
Fri Dec 4 10:16:05 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/0b81127e53da
changeset: 19458:0b81127e53da
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Dec 04 12:15:49 2015 +0200
description:
imap: Fixed assert-crash if client disconnected at a specific command state.
If there was a command with state=CLIENT_COMMAND_STATE_WAIT_SYNC and output
stream was already detected to be closed, we crashed with:

Panic: file imap-client.c: line 841 (client_check_command_hangs): assertion
failed: (!have_wait_unfinished || unfinished_count > 0)

diffstat:

 src/imap/imap-client.c |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (13 lines):

diff -r a47d273e144f -r 0b81127e53da src/imap/imap-client.c
--- a/src/imap/imap-client.c	Fri Dec 04 11:38:00 2015 +0200
+++ b/src/imap/imap-client.c	Fri Dec 04 12:15:49 2015 +0200
@@ -880,7 +880,8 @@
 		if (!client_handle_input(client))
 			break;
 	}
-	client_check_command_hangs(client);
+	if (!client->input->closed && !client->output->closed)
+		client_check_command_hangs(client);
 }
 
 /* Skip incoming data until newline is found,


More information about the dovecot-cvs mailing list