From: Timo Sirainen Date: Mon, 2 May 2022 21:27:47 +0000 (+0300) Subject: fts: Fix optimizing searches in virtual mailboxes without up-to-date indexes X-Git-Tag: 2.3.19~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f539a7e18cabfa52b585d428d9cf75d0f802b7e9;p=thirdparty%2Fdovecot%2Fcore.git 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 --- 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 {