From: Timo Sirainen Date: Fri, 29 Apr 2016 07:53:37 +0000 (+0300) Subject: fts-lucene: Fixed crash on rescan X-Git-Tag: 2.3.0.rc1~3917 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b4715b4a427769d5a7d5dc1d758426377b568833;p=thirdparty%2Fdovecot%2Fcore.git fts-lucene: Fixed crash on rescan Broken by af2564c7f9e05ad245a032efdfbc5abbb9b70f1e - rescan_ctx can be NULL. --- 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); } }