From: Vsevolod Stakhov Date: Wed, 7 Jul 2021 20:46:03 +0000 (+0100) Subject: [Minor] Fix entities with space decoding X-Git-Tag: 3.0~196 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8617105c7cb7079ba20fa8aaf106b53abac278c3;p=thirdparty%2Frspamd.git [Minor] Fix entities with space decoding --- diff --git a/src/libserver/html/html_entities.cxx b/src/libserver/html/html_entities.cxx index 9ed080d4f9..84e05953d2 100644 --- a/src/libserver/html/html_entities.cxx +++ b/src/libserver/html/html_entities.cxx @@ -2474,6 +2474,11 @@ decode_html_entitles_inplace(char *s, std::size_t len, bool norm_spaces) if ((*h == ';' || g_ascii_isspace(*h)) && h > e) { replace_entity(); state = parser_state::normal_content; + + if (g_ascii_isspace(*h)) { + /* Avoid increase of h */ + continue; + } } else if (*h == '&') { /* Previous `&` was bogus */ @@ -2580,7 +2585,7 @@ TEST_SUITE("html") { {" abc def ", "abc def "}, {"FOO>BAR", "FOO>BAR"}, {"FOO>BAR", "FOO>BAR"}, - {"FOO> BAR", "FOO>BAR"}, + {"FOO> BAR", "FOO> BAR"}, {"FOO>;;BAR", "FOO>;;BAR"}, {"I'm ¬it;", "I'm ¬it;"}, {"I'm ∉", "I'm ∉"},