changeset 8932:99ecc7f748a8 HEAD

mail_search_args_deinit(): Always deinitialize, even when there are extra references. This fixes at least a crash with virtual mailboxes where the same same args may be referenced for multiple mailboxes.
author Timo Sirainen <tss@iki.fi>
date Wed, 08 Apr 2009 18:30:06 -0400
parents e5633843c336
children a5bc67646c66
files src/lib-storage/mail-search.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mail-search.c	Wed Apr 08 18:17:02 2009 -0400
+++ b/src/lib-storage/mail-search.c	Wed Apr 08 18:30:06 2009 -0400
@@ -126,6 +126,7 @@
 		i_assert(args->box == box);
 		return;
 	}
+	args->initialized = TRUE;
 
 	args->box = box;
 	if (!args->simplified)
@@ -167,7 +168,7 @@
 
 void mail_search_args_deinit(struct mail_search_args *args)
 {
-	if (args->refcount > 1 || !args->initialized)
+	if (!args->initialized)
 		return;
 
 	mail_search_args_deinit_sub(args, args->args);