# HG changeset patch # User Timo Sirainen # Date 1239229806 14400 # Node ID 99ecc7f748a8eeb7790b624efd7f0d2822700c03 # Parent e5633843c336fde2e18524bc480527dc152c207d 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. diff -r e5633843c336 -r 99ecc7f748a8 src/lib-storage/mail-search.c --- 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);