From cfa820922be24efda6f34959dbccec8d5e4a2221 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 2 Nov 2024 23:13:09 +0100 Subject: [PATCH] LibWeb: Bail nicely on EOF in HTML parser "in body" state If we reach the end of the token stream when "ignoring and moving on to the next token" in the "in body" state, we should just not move on to the next token, since there isn't one. Covered by various WPT HTML parsing tests that will be imported in a subsequent commit. --- Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp index 6fcdbf26569..5b790bf0404 100644 --- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp +++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp @@ -1912,7 +1912,7 @@ void HTMLParser::handle_in_body(HTMLToken& token) auto next_token = m_tokenizer.next_token(); if (next_token.has_value() && next_token.value().is_character() && next_token.value().code_point() == '\n') { // Ignore it. - } else { + } else if (next_token.has_value()) { process_using_the_rules_for(m_insertion_mode, next_token.value()); } @@ -2471,7 +2471,7 @@ void HTMLParser::handle_in_body(HTMLToken& token) // FIXME: This step is not in the spec. if (next_token.has_value() && next_token.value().is_character() && next_token.value().code_point() == '\n') { // Ignore it. - } else { + } else if (next_token.has_value()) { process_using_the_rules_for(m_insertion_mode, next_token.value()); } return;