]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
virtual: virtual-mail - Free wanted headers in close if we are freeing
authorAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 16 Apr 2021 07:24:22 +0000 (10:24 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 16 Apr 2021 07:25:14 +0000 (10:25 +0300)
Simplifies next change

src/plugins/virtual/virtual-mail.c

index e482cec82497d6b9bece807a0700e08f9519e7ff..76d773690a07b8ef1a0ef2981f4bc0cc28f7c236 100644 (file)
@@ -67,8 +67,10 @@ static void virtual_mail_close(struct mail *mail)
                else
                        p->v.close(mails[i]);
        }
-       if (vmail->imail.freeing)
+       if (vmail->imail.freeing) {
                array_free(&vmail->backend_mails);
+               mailbox_header_lookup_unref(&vmail->wanted_headers);
+       }
        index_mail_close(mail);
 }
 
@@ -82,7 +84,6 @@ static void virtual_mail_free(struct mail *mail)
        virtual_mail_close(mail);
        mail->transaction->mail_ref_count--;
 
-       mailbox_header_lookup_unref(&vmail->wanted_headers);
        event_unref(&mail->event);
        pool_unref(&vmail->imail.mail.data_pool);
        pool_unref(&vmail->imail.mail.pool);