Mercurial > dovecot > core-2.2
changeset 22923:afb793aaaccb
fts: Fix indexing input that contains NULs
Any message_block that contained NULs, but otherwise was valid UTF-8, was
simply dropped.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Wed, 25 Apr 2018 15:17:53 +0300 |
parents | a556724ce39b |
children | 517b40c65bc5 |
files | src/plugins/fts/fts-parser.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/fts/fts-parser.c Sat Apr 14 02:05:51 2018 +0200 +++ b/src/plugins/fts/fts-parser.c Wed Apr 25 15:17:53 2018 +0300 @@ -83,8 +83,12 @@ } 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;