From: Timo Sirainen Date: Sun, 7 Sep 2008 17:48:43 +0000 (+0300) Subject: Virtual mailboxes: Fixes to handling invalid configuration. X-Git-Tag: 1.2.alpha2~76 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=66c0f96d704f09c88dd03b0ee13a3e9711ffe593;p=thirdparty%2Fdovecot%2Fcore.git Virtual mailboxes: Fixes to handling invalid configuration. --HG-- branch : HEAD --- diff --git a/src/plugins/virtual/virtual-config.c b/src/plugins/virtual/virtual-config.c index bf4792e1c2..90e4da2785 100644 --- a/src/plugins/virtual/virtual-config.c +++ b/src/plugins/virtual/virtual-config.c @@ -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); + } }