]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts-solr: Add asserts to make sure make sure uni_utf8_get_char_n() returns valid...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 15 Jan 2020 19:07:05 +0000 (21:07 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Mon, 20 Jan 2020 10:33:16 +0000 (12:33 +0200)
FTS input is always valid UTF-8. This just makes it a bit clearer.

src/plugins/fts-solr/fts-backend-solr-old.c
src/plugins/fts-solr/fts-backend-solr.c

index ca98a69ab94ff5296422feffeca85bcd2dbfd588..842dad31a977c40742203f3676a366ec78cc93ea 100644 (file)
@@ -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,
index d3f890e36e513f93c51358d36890bf6b69aab762..fbd8d5a38ee4f06735e332de1e86b451f9e8e157 100644 (file)
@@ -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,