Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8931:e5633843c336 HEAD
virtual: Crashfixes.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 08 Apr 2009 18:17:02 -0400 |
parents | a876b1fafa88 |
children | 99ecc7f748a8 |
files | src/plugins/virtual/virtual-mail.c |
diffstat | 1 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/virtual/virtual-mail.c Wed Apr 08 13:46:38 2009 -0400 +++ b/src/plugins/virtual/virtual-mail.c Wed Apr 08 18:17:02 2009 -0400 @@ -42,7 +42,10 @@ 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; } @@ -58,6 +61,8 @@ 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); } @@ -130,14 +135,13 @@ static bool virtual_mail_set_uid(struct mail *mail, uint32_t uid) { - struct virtual_mail *vmail = (struct virtual_mail *)mail; struct virtual_mailbox *mbox = (struct virtual_mailbox *)mail->box; uint32_t seq; if (!mail_index_lookup_seq(mbox->ibox.view, uid, &seq)) return FALSE; - virtual_mail_set_seq(vmail->backend_mail, seq); + virtual_mail_set_seq(mail, seq); return TRUE; }