Skip to content

Commit

Permalink
lib-storage: Fix searching when search query has invalid keywords.
Browse files Browse the repository at this point in the history
For example "SEARCH KEYWORD ]" was returning all mails instead of nothing.
  • Loading branch information
sirainen authored and villesavolainen committed May 11, 2017
1 parent 0682df0 commit 0674091
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/lib-storage/index/index-search.c
Expand Up @@ -158,6 +158,11 @@ static int search_arg_match_keywords(struct index_search_context *ctx,
const unsigned int *keyword_indexes;
unsigned int i, j, count;

if (search_kws->count == 0) {
/* invalid keyword - never matches */
return 0;
}

t_array_init(&keyword_indexes_arr, 128);
mail_index_lookup_keywords(ctx->view, ctx->mail_ctx.seq,
&keyword_indexes_arr);
Expand Down
2 changes: 2 additions & 0 deletions src/lib-storage/mail-search.h
Expand Up @@ -109,6 +109,8 @@ struct mail_search_arg {
/* set by mail_search_args_init(): */
struct {
struct mail_search_args *search_args;
/* Note that initialized keywords may be empty if the keyword
wasn't valid in this mailbox. */
struct mail_keywords *keywords;
struct imap_match_glob *mailbox_glob;
} initialized;
Expand Down

0 comments on commit 0674091

Please sign in to comment.