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 };