]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Fix memory leak when closing mailbox with delayed changes
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 26 Apr 2017 11:20:49 +0000 (14:20 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 26 Apr 2017 11:21:09 +0000 (14:21 +0300)
src/lib-storage/index/imapc/imapc-storage.c

index 92362d2d2378fae36aabbe9508633201ea553f6c..3bf12a542da350bf02618bf3c48e5761d598afc8 100644 (file)
@@ -724,16 +724,12 @@ void imapc_mail_cache_free(struct imapc_mail_cache *cache)
 static void imapc_mailbox_close(struct mailbox *box)
 {
        struct imapc_mailbox *mbox = (struct imapc_mailbox *)box;
+       bool changes;
 
+       (void)imapc_mailbox_commit_delayed_trans(mbox, &changes);
        imapc_mail_fetch_flush(mbox);
        if (mbox->client_box != NULL)
                imapc_client_mailbox_close(&mbox->client_box);
-       if (mbox->delayed_sync_view != NULL)
-               mail_index_view_close(&mbox->delayed_sync_view);
-       if (mbox->delayed_sync_trans != NULL) {
-               if (mail_index_transaction_commit(&mbox->delayed_sync_trans) < 0)
-                       mailbox_set_index_error(&mbox->box);
-       }
        if (array_is_created(&mbox->rseq_modseqs))
                array_free(&mbox->rseq_modseqs);
        if (mbox->sync_view != NULL)