]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Virtual mailboxes: Fixes to handling invalid configuration.
authorTimo Sirainen <tss@iki.fi>
Sun, 7 Sep 2008 17:48:43 +0000 (20:48 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 7 Sep 2008 17:48:43 +0000 (20:48 +0300)
--HG--
branch : HEAD

src/plugins/virtual/virtual-config.c

index bf4792e1c203b92f47ab558aba1861250ecf41b4..90e4da27852be218e026943048bafcff3809b0c8 100644 (file)
@@ -59,8 +59,10 @@ virtual_config_add_rule(struct virtual_parse_context *ctx, const char **error_r)
        struct mail_search_args *search_args;
        unsigned int i, count;
 
-       if (str_len(ctx->rule) == 0)
+       if (ctx->rule_idx == array_count(&ctx->mbox->backend_boxes)) {
+               i_assert(str_len(ctx->rule) == 0);
                return 0;
+       }
 
        search_args = virtual_search_args_parse(ctx->rule, error_r);
        str_truncate(ctx->rule, 0);
@@ -257,6 +259,8 @@ void virtual_config_free(struct virtual_mailbox *mbox)
        unsigned int i, count;
 
        bboxes = array_get_modifiable(&mbox->backend_boxes, &count);
-       for (i = 0; i < count; i++)
-               mail_search_args_unref(&bboxes[i]->search_args);
+       for (i = 0; i < count; i++) {
+               if (bboxes[i]->search_args != NULL)
+                       mail_search_args_unref(&bboxes[i]->search_args);
+       }
 }