From: Timo Sirainen Date: Wed, 7 Jun 2017 16:53:00 +0000 (+0300) Subject: lib-storage: mail_search_args_simplify() - Fix merging already-initialized keywords X-Git-Tag: 2.3.0.rc1~1476 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1270cb6b6139001b0a89f595ad0868b1f3a0af45;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mail_search_args_simplify() - Fix merging already-initialized keywords It was deinitializing the arg that was kept instead of the one being removed. --- diff --git a/src/lib-storage/mail-search-args-simplify.c b/src/lib-storage/mail-search-args-simplify.c index cc6a944bf4..7c28252806 100644 --- a/src/lib-storage/mail-search-args-simplify.c +++ b/src/lib-storage/mail-search-args-simplify.c @@ -97,11 +97,14 @@ mail_search_args_merge_mask(struct mail_search_simplify_ctx *ctx, *prev_argp = args; return FALSE; } + if (ctx->initialized) - mail_search_arg_one_deinit(*prev_argp); + mail_search_arg_one_deinit(args); if ((*prev_argp)->match_not != args->match_not) { /* a && !a = 0 */ + if (ctx->initialized) + mail_search_arg_one_deinit(*prev_argp); (*prev_argp)->type = SEARCH_ALL; (*prev_argp)->match_not = ctx->parent_and; }