From 4542c94adb8910e0174c784754e737cec16af59c Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 19 Jan 2010 16:52:19 +0200 Subject: [PATCH] virtual: wanted_headers needs to be kept referenced. --HG-- branch : HEAD --- src/plugins/virtual/virtual-mail.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/virtual/virtual-mail.c b/src/plugins/virtual/virtual-mail.c index 696631d88c..209bb4cca1 100644 --- a/src/plugins/virtual/virtual-mail.c +++ b/src/plugins/virtual/virtual-mail.c @@ -45,7 +45,11 @@ virtual_mail_alloc(struct mailbox_transaction_context *t, vmail->imail.trans = (struct index_transaction_context *)t; vmail->wanted_fields = wanted_fields; - vmail->wanted_headers = wanted_headers; + if (wanted_headers != NULL) { + vmail->wanted_headers = wanted_headers; + mailbox_header_lookup_ref(wanted_headers); + } + i_array_init(&vmail->backend_mails, array_count(&mbox->backend_boxes)); return &vmail->imail.mail.mail; } @@ -61,6 +65,9 @@ static void virtual_mail_free(struct mail *mail) mail_free(&mails[i]); array_free(&vmail->backend_mails); + if (vmail->wanted_headers != NULL) + mailbox_header_lookup_unref(&vmail->wanted_headers); + pool_unref(&vmail->imail.data_pool); pool_unref(&vmail->imail.mail.pool); } -- 2.47.3