From: Timo Sirainen Date: Wed, 15 Jan 2020 19:07:05 +0000 (+0200) Subject: fts-solr: Add asserts to make sure make sure uni_utf8_get_char_n() returns valid... X-Git-Tag: 2.3.9.3~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8384577085ee7de7b1f09c611d3f7c2399eb3ba1;p=thirdparty%2Fdovecot%2Fcore.git fts-solr: Add asserts to make sure make sure uni_utf8_get_char_n() returns valid UTF-8 FTS input is always valid UTF-8. This just makes it a bit clearer. --- diff --git a/src/plugins/fts-solr/fts-backend-solr-old.c b/src/plugins/fts-solr/fts-backend-solr-old.c index ca98a69ab9..842dad31a9 100644 --- a/src/plugins/fts-solr/fts-backend-solr-old.c +++ b/src/plugins/fts-solr/fts-backend-solr-old.c @@ -91,9 +91,10 @@ xml_encode_data(string_t *dest, const unsigned char *data, size_t len) } else if (data[i] >= 0x80) { /* make sure the character is valid for XML so we don't get XML parser errors */ - unsigned int char_len = + int char_len = uni_utf8_get_char_n(data + i, len - i, &chr); - if (char_len > 0 && is_valid_xml_char(chr)) + i_assert(char_len > 0); /* input is valid UTF8 */ + if (is_valid_xml_char(chr)) str_append_data(dest, data + i, char_len); else { str_append_data(dest, utf8_replacement_char, diff --git a/src/plugins/fts-solr/fts-backend-solr.c b/src/plugins/fts-solr/fts-backend-solr.c index d3f890e36e..fbd8d5a38e 100644 --- a/src/plugins/fts-solr/fts-backend-solr.c +++ b/src/plugins/fts-solr/fts-backend-solr.c @@ -115,9 +115,10 @@ xml_encode_data_max(string_t *dest, const unsigned char *data, size_t len, } else if (data[i] >= 0x80) { /* make sure the character is valid for XML so we don't get XML parser errors */ - unsigned int char_len = + int char_len = uni_utf8_get_char_n(data + i, len - i, &chr); - if (char_len > 0 && is_valid_xml_char(chr)) + i_assert(char_len > 0); /* input is valid UTF8 */ + if (is_valid_xml_char(chr)) str_append_data(dest, data + i, char_len); else { str_append_data(dest, utf8_replacement_char,