changeset 8172:c0a80d6b8ef6 HEAD

Virtual mailboxes: Fixes to handling invalid configuration.
author Timo Sirainen <tss@iki.fi>
date Sun, 07 Sep 2008 20:48:43 +0300
parents 60b8c2609087
children 6dd0c6755afe
files src/plugins/virtual/virtual-config.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/virtual/virtual-config.c	Sun Sep 07 20:34:20 2008 +0300
+++ b/src/plugins/virtual/virtual-config.c	Sun Sep 07 20:48:43 2008 +0300
@@ -59,8 +59,10 @@
 	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 @@
 	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);
+	}
 }