From b4715b4a427769d5a7d5dc1d758426377b568833 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 29 Apr 2016 10:53:37 +0300 Subject: [PATCH] fts-lucene: Fixed crash on rescan Broken by af2564c7f9e05ad245a032efdfbc5abbb9b70f1e - rescan_ctx can be NULL. --- src/plugins/fts-lucene/lucene-wrapper.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/fts-lucene/lucene-wrapper.cc b/src/plugins/fts-lucene/lucene-wrapper.cc index 718502290e..89f99a3fcd 100644 --- a/src/plugins/fts-lucene/lucene-wrapper.cc +++ b/src/plugins/fts-lucene/lucene-wrapper.cc @@ -821,13 +821,14 @@ rescan_next(struct rescan_context *ctx, Document *doc) static void rescan_clear_unseen_mailbox(struct rescan_context *rescan_ctx, + struct mailbox_list *list, const char *vname, const struct fts_index_header *hdr) { struct mailbox *box; struct mailbox_metadata metadata; - box = mailbox_alloc(rescan_ctx->index->list, vname, + box = mailbox_alloc(list, vname, (enum mailbox_flags)0); if (mailbox_open(box) == 0 && mailbox_get_metadata(box, MAILBOX_METADATA_GUID, @@ -860,7 +861,7 @@ static void rescan_clear_unseen_mailboxes(struct lucene_index *index, iter = mailbox_list_iter_init(index->list, "*", iter_flags); while ((info = mailbox_list_iter_next(iter)) != NULL) - rescan_clear_unseen_mailbox(rescan_ctx, info->vname, &hdr); + rescan_clear_unseen_mailbox(rescan_ctx, index->list, info->vname, &hdr); (void)mailbox_list_iter_deinit(&iter); if (ns->prefix_len > 0 && @@ -868,7 +869,7 @@ static void rescan_clear_unseen_mailboxes(struct lucene_index *index, /* namespace prefix itself isn't returned by the listing */ vname = t_strndup(index->list->ns->prefix, index->list->ns->prefix_len-1); - rescan_clear_unseen_mailbox(rescan_ctx, vname, &hdr); + rescan_clear_unseen_mailbox(rescan_ctx, index->list, vname, &hdr); } } -- 2.47.3