From a91f361d84e91a4abda0ee0770e4d78792d1aa55 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 3 May 2022 00:27:47 +0300 Subject: [PATCH] fts: Fix optimizing searches in virtual mailboxes without up-to-date indexes This could have caused header searches in virtual mailboxes to not return all results when fts_enforced!=yes Broken by 9705b81fb51b5bdeaba12932a390ced2cc9dcad7 --- src/plugins/fts/fts-storage.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/fts/fts-storage.c b/src/plugins/fts/fts-storage.c index 04f2aec738..101d52a21d 100644 --- a/src/plugins/fts/fts-storage.c +++ b/src/plugins/fts/fts-storage.c @@ -825,8 +825,11 @@ static void fts_mailbox_virtual_match_mail(struct mail_search_context *ctx, hash_table_lookup(fctx->last_indexed_virtual_uids, box_name); if (uid_value == NULL) { /* This backend's last indexed uid is not yet inserted to the table */ - if (mailbox_open(backend_mail->box) < 0 || - fts_backend_get_last_uid(fctx->backend, backend_mail->box, + struct fts_mailbox_list *flist = + FTS_LIST_CONTEXT(backend_mail->box->list); + if (flist == NULL || flist->failed || + mailbox_open(backend_mail->box) < 0 || + fts_backend_get_last_uid(flist->backend, backend_mail->box, &be_last_uid) < 0) { be_last_uid = 0; } else { -- 2.47.3