From: Timo Sirainen Date: Tue, 4 Mar 2014 15:11:49 +0000 (+0200) Subject: lib-storage: Fixed assert-crash in mailbox rename with layout=index X-Git-Tag: 2.2.13.rc1~211 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=28099d04bbb9e668c84e24f4abe258facdc030ac;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fixed assert-crash in mailbox rename with layout=index --- diff --git a/src/lib-storage/list/mailbox-list-index-sync.c b/src/lib-storage/list/mailbox-list-index-sync.c index 1e93800932..4741f01b55 100644 --- a/src/lib-storage/list/mailbox-list-index-sync.c +++ b/src/lib-storage/list/mailbox-list-index-sync.c @@ -238,6 +238,9 @@ int mailbox_list_index_sync_begin(struct mailbox_list *list, i_assert(!ilist->syncing); + if (mailbox_list_index_index_open(list) < 0) + return -1; + if (mail_index_sync_begin(ilist->index, &index_sync_ctx, &view, &trans, MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES) < 0) { mailbox_list_index_set_index_error(list); diff --git a/src/lib-storage/list/mailbox-list-index.c b/src/lib-storage/list/mailbox-list-index.c index c4634a4196..b69e8a6875 100644 --- a/src/lib-storage/list/mailbox-list-index.c +++ b/src/lib-storage/list/mailbox-list-index.c @@ -44,7 +44,7 @@ void mailbox_list_index_reset(struct mailbox_list_index *ilist) mailbox_list_index_init_pool(ilist); } -static int mailbox_list_index_index_open(struct mailbox_list *list) +int mailbox_list_index_index_open(struct mailbox_list *list) { struct mailbox_list_index *ilist = INDEX_LIST_CONTEXT(list); const struct mail_storage_settings *set = list->mail_set; diff --git a/src/lib-storage/list/mailbox-list-index.h b/src/lib-storage/list/mailbox-list-index.h index 2668ced748..54a33f80d9 100644 --- a/src/lib-storage/list/mailbox-list-index.h +++ b/src/lib-storage/list/mailbox-list-index.h @@ -137,6 +137,7 @@ void mailbox_list_index_node_get_path(const struct mailbox_list_index_node *node void mailbox_list_index_node_unlink(struct mailbox_list_index *ilist, struct mailbox_list_index_node *node); +int mailbox_list_index_index_open(struct mailbox_list *list); bool mailbox_list_index_need_refresh(struct mailbox_list_index *ilist, struct mail_index_view *view); int mailbox_list_index_refresh(struct mailbox_list *list);