dovecot-2.2: fts + lib-fts: Fixed crash with some search queries...
dovecot at dovecot.org
dovecot at dovecot.org
Mon May 18 10:39:34 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/3d2bd49e6b4a
changeset: 18724:3d2bd49e6b4a
user: Timo Sirainen <tss at iki.fi>
date: Mon May 18 06:37:28 2015 -0400
description:
fts + lib-fts: Fixed crash with some search queries that contained uninitialized search args.
diffstat:
src/plugins/fts/fts-search-args.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diffs (28 lines):
diff -r eafbf9a13bbd -r 3d2bd49e6b4a src/plugins/fts/fts-search-args.c
--- a/src/plugins/fts/fts-search-args.c Mon May 18 06:36:56 2015 -0400
+++ b/src/plugins/fts/fts-search-args.c Mon May 18 06:37:28 2015 -0400
@@ -183,11 +183,12 @@
int fts_search_args_expand(struct fts_backend *backend,
struct mail_search_args *args)
{
- struct mail_search_arg *args_dup;
+ struct mail_search_arg *args_dup, *orig_args = args->args;
/* duplicate the args, so if expansion fails we haven't changed
anything */
args_dup = mail_search_arg_dup(args->pool, args->args);
+
if (fts_search_args_expand_tree(backend, args->pool, &args_dup) < 0)
return -1;
@@ -195,5 +196,10 @@
args->simplified = FALSE;
args->args = args_dup;
mail_search_args_simplify(args);
+
+ /* duplicated args aren't initialized */
+ i_assert(args->init_refcount > 0);
+ mail_search_arg_init(args, args_dup, FALSE, NULL);
+ mail_search_arg_deinit(orig_args);
return 0;
}
More information about the dovecot-cvs
mailing list