]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Crashfix when sometimes closing mailbox.
authorTimo Sirainen <tss@iki.fi>
Tue, 13 Sep 2011 07:32:11 +0000 (10:32 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 13 Sep 2011 07:32:11 +0000 (10:32 +0300)
src/lib-storage/index/imapc/imapc-client.c

index 9725225c7a349896561ecaf7b0839da63de58958..55180b62f0aa1fde9d8eb830f72ee83917dbd1e9 100644 (file)
@@ -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,