changeset 21435:83f1f9b81f3b

imapc: Fix assert-crash on some connect failures imapc_storage_has_modseqs() causes imapc_client_get_capabilities() to be called, which assert-crashes if there isn't a valid connection: Panic: file imapc-client.c: line 438 (imapc_client_get_capabilities): assertion failed: (conn != NULL)
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Fri, 20 Jan 2017 18:19:05 +0200
parents 1cc2946b801c
children e2cba0461f82
files src/lib-storage/index/imapc/imapc-storage.c
diffstat 1 files changed, 7 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-storage.c	Fri Jan 20 15:57:10 2017 +0200
+++ b/src/lib-storage/index/imapc/imapc-storage.c	Fri Jan 20 18:19:05 2017 +0200
@@ -598,6 +598,13 @@
 		return -1;
 	}
 
+	if (imapc_storage_has_modseqs(mbox->storage)) {
+		if (!array_is_created(&mbox->rseq_modseqs))
+			i_array_init(&mbox->rseq_modseqs, 32);
+		else
+			array_clear(&mbox->rseq_modseqs);
+	}
+
 	mbox->client_box =
 		imapc_client_mailbox_open(mbox->storage->client->client, mbox);
 	imapc_client_mailbox_set_reopen_cb(mbox->client_box,
@@ -647,13 +654,6 @@
 		return -1;
 	}
 
-	if (imapc_storage_has_modseqs(mbox->storage)) {
-		if (!array_is_created(&mbox->rseq_modseqs))
-			i_array_init(&mbox->rseq_modseqs, 32);
-		else
-			array_clear(&mbox->rseq_modseqs);
-	}
-
 	if (imapc_mailbox_select(mbox) < 0) {
 		mailbox_close(box);
 		return -1;