]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts: Fix searching headers with TEXT/BODY
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 5 Feb 2018 21:54:33 +0000 (23:54 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Wed, 7 Feb 2018 13:46:11 +0000 (15:46 +0200)
TEXT is searching headers and BODY is searching MIME headers. Those headers
were indexed with data language, so search must also include data language
when looking up words. We'll just include the data language for all
searches now, so it should always work correctly.

src/plugins/fts/fts-user.c

index 71da3cefafdabafd8ab453a5ad75584ac74a01a2..e2be286ebbcae59f30ac0d5dae88c9a3206f9714 100644 (file)
@@ -295,6 +295,7 @@ fts_user_init_data_language(struct mail_user *user, struct fts_user *fuser,
 
        p_array_init(&fuser->data_languages, user->pool, 1);
        array_append(&fuser->data_languages, &user_lang, 1);
+       array_append(&fuser->languages, &user_lang, 1);
 
        fuser->data_lang = user_lang;
        return 0;
@@ -349,8 +350,6 @@ static void fts_user_free(struct fts_user *fuser)
 
        array_foreach(&fuser->languages, user_langp)
                fts_user_language_free(*user_langp);
-       if (fuser->data_lang != NULL)
-               fts_user_language_free(fuser->data_lang);
 }
 
 int fts_mail_user_init(struct mail_user *user, const char **error_r)