dovecot-1.2: Virtual mailboxes: Fixes to handling invalid config...

dovecot at dovecot.org dovecot at dovecot.org
Sun Sep 7 20:48:47 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/c0a80d6b8ef6
changeset: 8172:c0a80d6b8ef6
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Sep 07 20:48:43 2008 +0300
description:
Virtual mailboxes: Fixes to handling invalid configuration.

diffstat:

1 file changed, 8 insertions(+), 4 deletions(-)
src/plugins/virtual/virtual-config.c |   12 ++++++++----

diffs (27 lines):

diff -r 60b8c2609087 -r c0a80d6b8ef6 src/plugins/virtual/virtual-config.c
--- 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 @@ virtual_config_add_rule(struct virtual_p
 	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_
 	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);
+	}
+}


More information about the dovecot-cvs mailing list