From 59795aab41728b6ffda903781b9063f4dc907490 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 9 Oct 2019 18:42:08 +0200 Subject: [PATCH] LibHTML: Handle CSS declarations that don't end in ';' --- Libraries/LibHTML/Parser/CSSParser.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Libraries/LibHTML/Parser/CSSParser.cpp b/Libraries/LibHTML/Parser/CSSParser.cpp index 4166177b787..17957c3b428 100644 --- a/Libraries/LibHTML/Parser/CSSParser.cpp +++ b/Libraries/LibHTML/Parser/CSSParser.cpp @@ -114,12 +114,14 @@ public: char consume_specific(char ch) { PARSE_ASSERT(peek() == ch); + PARSE_ASSERT(index < css.length()); ++index; return ch; } char consume_one() { + PARSE_ASSERT(index < css.length()); return css[index++]; }; @@ -237,12 +239,12 @@ public: bool is_valid_property_name_char(char ch) const { - return !isspace(ch) && ch != ':'; + return ch && !isspace(ch) && ch != ':'; } bool is_valid_property_value_char(char ch) const { - return ch != '!' && ch != ';'; + return ch && ch != '!' && ch != ';'; } Optional parse_property() @@ -280,7 +282,7 @@ public: consume_whitespace(); is_important = true; } - if (peek() != '}') + if (peek() && peek() != '}') consume_specific(';'); return StyleProperty { parse_css_property_id(property_name), parse_css_value(property_value), is_important };