From: Aki Tuomi Date: Fri, 16 Apr 2021 08:16:36 +0000 (+0300) Subject: virtual: virtual-mail - Pass wanted_headers and wanted_fields to backend mails only X-Git-Tag: 2.3.15~73 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0cd683c086e0893608a0a9c7cbb2450d1551c3c0;p=thirdparty%2Fdovecot%2Fcore.git virtual: virtual-mail - Pass wanted_headers and wanted_fields to backend mails only Broken in 67ab2070cf513179382b564871f2a0f177987cc9 --- diff --git a/src/plugins/virtual/virtual-mail.c b/src/plugins/virtual/virtual-mail.c index 3c5bac383a..f602674436 100644 --- a/src/plugins/virtual/virtual-mail.c +++ b/src/plugins/virtual/virtual-mail.c @@ -40,8 +40,14 @@ virtual_mail_alloc(struct mailbox_transaction_context *t, mail_pool = pool_alloconly_create("vmail", 1024); data_pool = pool_alloconly_create("virtual index_mail", 512); vmail = p_new(mail_pool, struct virtual_mail, 1); - index_mail_init(&vmail->imail, t, wanted_fields, wanted_headers, - mail_pool, data_pool); + vmail->wanted_fields = wanted_fields; + vmail->wanted_headers = wanted_headers; + if (vmail->wanted_headers != NULL) + mailbox_header_lookup_ref(vmail->wanted_headers); + /* Do not pass wanted_fields or wanted_headers to index_mail_init. + It will just cause unwanted behaviour, as we only want these + to be passed to backend mails. */ + index_mail_init(&vmail->imail, t, 0, NULL, mail_pool, data_pool); vmail->imail.mail.v = virtual_mail_vfuncs; i_array_init(&vmail->backend_mails, array_count(&mbox->backend_boxes)); return &vmail->imail.mail.mail;