From c55f281475b90fa994208af8b23415a34d9cf992 Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Sat, 14 Jun 2025 08:43:52 +0100 Subject: [PATCH] LibWeb: Disallow empty `font-language-override` string values --- Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp | 4 ++++ .../css-fonts/parsing/font-language-override-invalid.txt | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp index 360449f82b2..edec2d89506 100644 --- a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp @@ -2623,6 +2623,10 @@ RefPtr Parser::parse_font_language_override_value(TokenStre return nullptr; } auto length = string_value.code_points().length(); + if (length == 0) { + dbgln_if(CSS_PARSER_DEBUG, "CSSParser: Failed to parse font-language-override: value is empty"); + return nullptr; + } if (length > 4) { dbgln_if(CSS_PARSER_DEBUG, "CSSParser: Failed to parse font-language-override: value \"{}\" is too long", string_value); return nullptr; diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-language-override-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-language-override-invalid.txt index b9a46947edb..e1c438d4abe 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-language-override-invalid.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-fonts/parsing/font-language-override-invalid.txt @@ -2,11 +2,11 @@ Harness status: OK Found 6 tests -4 Pass -2 Fail +5 Pass +1 Fail Pass e.style['font-language-override'] = "auto" should not set the property value Pass e.style['font-language-override'] = "normal \"ksw\"" should not set the property value Pass e.style['font-language-override'] = "\"turkish\"" should not set the property value Fail e.style['font-language-override'] = "\"xøx\"" should not set the property value -Fail e.style['font-language-override'] = "\"\"" should not set the property value +Pass e.style['font-language-override'] = "\"\"" should not set the property value Pass e.style['font-language-override'] = "\"ENG \"" should not set the property value \ No newline at end of file