From 8617105c7cb7079ba20fa8aaf106b53abac278c3 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 7 Jul 2021 21:46:03 +0100 Subject: [PATCH] [Minor] Fix entities with space decoding --- src/libserver/html/html_entities.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 ∉"}, -- 2.47.3