]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Fixed potential assert-crash with command pipelining.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 16 Dec 2015 13:37:26 +0000 (15:37 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 16 Dec 2015 13:37:26 +0000 (15:37 +0200)
Should fix assert-crash:
Panic: file imap-fetch.c: line 554: assertion failed: (ctx->client->output_cmd_lock == NULL || ctx->client->output_cmd_lock == cmd)

src/imap/imap-client.c

index 85cb5f28417ab2d948577c18ef5c68778312c92f..a6bc1de63e6735fbd312ab2272836a6a3b70fdc6 100644 (file)
@@ -1022,7 +1022,9 @@ static bool client_handle_next_command(struct client *client, bool *remove_io_r)
 
        if (client->input_lock != NULL) {
                if (client->input_lock->state ==
-                   CLIENT_COMMAND_STATE_WAIT_UNAMBIGUITY) {
+                   CLIENT_COMMAND_STATE_WAIT_UNAMBIGUITY ||
+                   (client->output_cmd_lock != NULL &&
+                    client->output_cmd_lock != client->input_lock)) {
                        *remove_io_r = TRUE;
                        return FALSE;
                }