]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Fixed assert-crash in mailbox rename with layout=index
authorTimo Sirainen <tss@iki.fi>
Tue, 4 Mar 2014 15:11:49 +0000 (17:11 +0200)
committerTimo Sirainen <tss@iki.fi>
Tue, 4 Mar 2014 15:11:49 +0000 (17:11 +0200)
src/lib-storage/list/mailbox-list-index-sync.c
src/lib-storage/list/mailbox-list-index.c
src/lib-storage/list/mailbox-list-index.h

index 1e93800932e836ef9e2dff547c0def327beb17bf..4741f01b553882066e56aeaeb569a5746581418b 100644 (file)
@@ -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);
index c4634a4196e35ef2945fafc345a0d5d641b0c611..b69e8a68757e3bbb7d26aea0c84de4da7ddbd55c 100644 (file)
@@ -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;
index 2668ced748e99d9e6a06352a92a6eeddf04e568a..54a33f80d9d2d2f53c326d485a2832419d36c88f 100644 (file)
@@ -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);