]> 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)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 5 Feb 2018 21:54:33 +0000 (23:54 +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 0b650aad6e0a18ca2b87949cd0959826f29c76d0..809e9e3dc75aaba3b2c31286e8931a2a9ea1862c 100644 (file)
@@ -296,6 +296,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;
@@ -354,8 +355,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)