From: Timo Sirainen Date: Wed, 25 Apr 2018 12:17:53 +0000 (+0300) Subject: fts: Fix indexing input that contains NULs X-Git-Tag: 2.2.36.rc1~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4e45cd049a49ee4da18f020b12ed38086b4f8ef0;p=thirdparty%2Fdovecot%2Fcore.git fts: Fix indexing input that contains NULs Any message_block that contained NULs, but otherwise was valid UTF-8, was simply dropped. --- diff --git a/src/plugins/fts/fts-parser.c b/src/plugins/fts/fts-parser.c index 15249567d6..8fc5c7f166 100644 --- a/src/plugins/fts/fts-parser.c +++ b/src/plugins/fts/fts-parser.c @@ -83,8 +83,12 @@ void fts_parser_more(struct fts_parser *parser, struct message_block *block) } else { buffer_set_used_size(parser->utf8_output, 0); } - (void)uni_utf8_get_valid_data(block->data, block->size, - parser->utf8_output); + if (uni_utf8_get_valid_data(block->data, block->size, + parser->utf8_output)) { + /* valid UTF-8, but there were NULs */ + buffer_append(parser->utf8_output, block->data, + block->size); + } replace_nul_bytes(parser->utf8_output); block->data = parser->utf8_output->data; block->size = parser->utf8_output->used;