# HG changeset patch # User Timo Sirainen # Date 1263912739 -7200 # Node ID 45f360c1c9ebf91ae27ce88a34e3d4bf398013bb # Parent 57eb71a78375668565bba6e35c129be873dbf24f virtual: wanted_headers needs to be kept referenced. diff -r 57eb71a78375 -r 45f360c1c9eb src/plugins/virtual/virtual-mail.c --- a/src/plugins/virtual/virtual-mail.c Tue Jan 19 16:51:47 2010 +0200 +++ b/src/plugins/virtual/virtual-mail.c Tue Jan 19 16:52:19 2010 +0200 @@ -45,7 +45,11 @@ 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 @@ 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); }