]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts: Fixed crash when searching virtual mailboxes and fts backend without lookup_multi().
authorTimo Sirainen <tss@iki.fi>
Wed, 20 Mar 2013 16:46:10 +0000 (18:46 +0200)
committerTimo Sirainen <tss@iki.fi>
Wed, 20 Mar 2013 16:46:10 +0000 (18:46 +0200)
Patch by Mike Abbott / Apple

src/plugins/fts/fts-api.c

index 818c0ca40e4c5ac767f4be9d3b3b484d356cf530..ff33479608c435bdc356f6e68f41243a49e8dbce 100644 (file)
@@ -337,8 +337,13 @@ int fts_backend_lookup_multi(struct fts_backend *backend,
        result->box_results = p_new(result->pool, struct fts_result, i+1);
 
        for (i = 0; boxes[i] != NULL; i++) {
+               struct fts_result *box_result = &result->box_results[i];
+
+               p_array_init(&box_result->definite_uids, result->pool, 32);
+               p_array_init(&box_result->maybe_uids, result->pool, 32);
+               p_array_init(&box_result->scores, result->pool, 32);
                if (backend->v.lookup(backend, boxes[i], args,
-                                     and_args, &result->box_results[i]) < 0)
+                                     and_args, box_result) < 0)
                        return -1;
        }
        return 0;