changeset 21991:e4f497e58288

imapc: Fix memory leak when closing mailbox with delayed changes
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Wed, 26 Apr 2017 14:20:49 +0300
parents 45dde0201d01
children 466eeebe3fc1
files src/lib-storage/index/imapc/imapc-storage.c
diffstat 1 files changed, 2 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-storage.c	Tue Apr 25 12:39:04 2017 +0300
+++ b/src/lib-storage/index/imapc/imapc-storage.c	Wed Apr 26 14:20:49 2017 +0300
@@ -724,16 +724,12 @@
 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)