]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Fix potential dict transaction leak on transaction rollback.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 29 Mar 2017 10:28:36 +0000 (13:28 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 30 Mar 2017 17:55:02 +0000 (20:55 +0300)
src/lib-storage/index/index-transaction.c

index ac521b9fc50b74c2565ee0258ba4bcdf6fa3346e..0e12d44aaac49e5d08541ba7feb6acc2eff0c332 100644 (file)
@@ -100,6 +100,11 @@ index_transaction_index_rollback(struct mail_index_transaction *index_trans)
        struct mailbox_transaction_context *t =
                MAIL_STORAGE_CONTEXT(index_trans);
 
+       if (t->attr_pvt_trans != NULL)
+               dict_transaction_rollback(&t->attr_pvt_trans);
+       if (t->attr_shared_trans != NULL)
+               dict_transaction_rollback(&t->attr_shared_trans);
+
        if (t->save_ctx != NULL) {
                mailbox_save_context_deinit(t->save_ctx);
                t->box->v.transaction_save_rollback(t->save_ctx);