]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Crashfix for opening sdbox/mdbox mailbox.
authorTimo Sirainen <tss@iki.fi>
Wed, 29 Dec 2010 09:39:32 +0000 (11:39 +0200)
committerTimo Sirainen <tss@iki.fi>
Wed, 29 Dec 2010 09:39:32 +0000 (11:39 +0200)
src/lib-storage/index/index-storage.c

index 36d5157f3888e2dee319993a62887dacee63d5b5..609a29baebecd5dbbdd412d9cac58d626a515cf7 100644 (file)
@@ -162,14 +162,6 @@ int index_storage_mailbox_open(struct mailbox *box, bool move_to_memory)
        if (move_to_memory)
                ibox->index_flags &= ~MAIL_INDEX_OPEN_FLAG_CREATE;
 
-       if ((index_flags & MAIL_INDEX_OPEN_FLAG_NEVER_IN_MEMORY) != 0) {
-               if (mail_index_is_in_memory(box->index)) {
-                       mail_storage_set_critical(box->storage,
-                               "Couldn't create index file");
-                       return -1;
-               }
-       }
-
        if (mailbox_list_create_missing_index_dir(box->list, box->name) < 0) {
                mail_storage_set_internal_error(box->storage);
                return -1;
@@ -201,6 +193,13 @@ int index_storage_mailbox_open(struct mailbox *box, bool move_to_memory)
                                i_panic("in-memory index creation failed");
                }
        }
+       if ((index_flags & MAIL_INDEX_OPEN_FLAG_NEVER_IN_MEMORY) != 0) {
+               if (mail_index_is_in_memory(box->index)) {
+                       mail_storage_set_critical(box->storage,
+                               "Couldn't create index file");
+                       return -1;
+               }
+       }
 
        box->cache = mail_index_get_cache(box->index);
        index_cache_register_defaults(box);