From: Timo Sirainen Date: Tue, 13 Sep 2011 07:32:11 +0000 (+0300) Subject: imapc: Crashfix when sometimes closing mailbox. X-Git-Tag: 2.1.alpha2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5532e2ec6a5a900490d3c9aeabb01c1968f856b6;p=thirdparty%2Fdovecot%2Fcore.git imapc: Crashfix when sometimes closing mailbox. --- diff --git a/src/lib-storage/index/imapc/imapc-client.c b/src/lib-storage/index/imapc/imapc-client.c index 9725225c7a..55180b62f0 100644 --- a/src/lib-storage/index/imapc/imapc-client.c +++ b/src/lib-storage/index/imapc/imapc-client.c @@ -238,8 +238,6 @@ void imapc_client_mailbox_close(struct imapc_client_mailbox **_box) struct imapc_client_mailbox *box = *_box; struct imapc_client_connection *const *connp; - *_box = NULL; - array_foreach(&box->client->conns, connp) { if ((*connp)->box == box) { (*connp)->box = NULL; @@ -251,6 +249,10 @@ void imapc_client_mailbox_close(struct imapc_client_mailbox **_box) imapc_connection_unselect(box); imapc_msgmap_deinit(&box->msgmap); i_free(box); + + /* set this only after unselect, which may cancel some commands that + reference this box */ + *_box = NULL; } static void imapc_client_mailbox_cmd_cb(const struct imapc_command_reply *reply,