]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mdbox: Fixed assert-crashing in storage rebuild.
authorTimo Sirainen <tss@iki.fi>
Fri, 9 Apr 2010 18:07:08 +0000 (21:07 +0300)
committerTimo Sirainen <tss@iki.fi>
Fri, 9 Apr 2010 18:07:08 +0000 (21:07 +0300)
--HG--
branch : HEAD

src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c

index 45989cd2e7169140a52f60b1c4766979bfa1bdbb..9810bdcad5e6245e039b81041e3a3d0326d20573 100644 (file)
@@ -458,10 +458,10 @@ rebuild_mailbox(struct mdbox_storage_rebuild_context *ctx,
        enum mail_error error;
        int ret;
 
-       box = mdbox_mailbox_alloc(&ctx->storage->storage.storage,
-                                 ns->list, name, MAILBOX_FLAG_READONLY |
-                                 MAILBOX_FLAG_KEEP_RECENT |
-                                 MAILBOX_FLAG_IGNORE_ACLS);
+       box = mailbox_alloc(ns->list, name, MAILBOX_FLAG_READONLY |
+                           MAILBOX_FLAG_KEEP_RECENT |
+                           MAILBOX_FLAG_IGNORE_ACLS);
+       i_assert(box->storage == &ctx->storage->storage.storage);
        if (dbox_mailbox_open(box) < 0) {
                (void)mail_storage_get_last_error(box->storage, &error);
                mailbox_free(&box);
@@ -595,10 +595,11 @@ static int rebuild_restore_msg(struct mdbox_storage_rebuild_context *ctx,
                strcmp(mailbox, ctx->prev_msg.box->name) == 0 ?
                ctx->prev_msg.box : NULL;
        while (box == NULL) {
-               box = mdbox_mailbox_alloc(storage, ctx->default_list,
-                                         mailbox, MAILBOX_FLAG_READONLY |
-                                         MAILBOX_FLAG_KEEP_RECENT |
-                                         MAILBOX_FLAG_IGNORE_ACLS);
+               box = mailbox_alloc(ctx->default_list, mailbox,
+                                   MAILBOX_FLAG_READONLY |
+                                   MAILBOX_FLAG_KEEP_RECENT |
+                                   MAILBOX_FLAG_IGNORE_ACLS);
+               i_assert(box->storage == storage);
                if (dbox_mailbox_open(box) == 0)
                        break;