From df16c9676b19cfffa190de9b7f1bf1853083f8ac Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 18 Nov 2019 12:15:23 +0100 Subject: [PATCH] LibHTML: Tolerate "px" suffix on CSS lengths We only support "px" units (and "auto") but we shouldn't choke just because someone actually says "10px" instead of just "10" --- Libraries/LibHTML/Parser/CSSParser.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Libraries/LibHTML/Parser/CSSParser.cpp b/Libraries/LibHTML/Parser/CSSParser.cpp index 97ec907304..64bca0b3fe 100644 --- a/Libraries/LibHTML/Parser/CSSParser.cpp +++ b/Libraries/LibHTML/Parser/CSSParser.cpp @@ -25,13 +25,10 @@ static Optional parse_css_color(const StringView& view) NonnullRefPtr parse_css_value(const StringView& view) { String string(view); - bool ok; - int as_int = string.to_int(ok); - if (ok) - return LengthStyleValue::create(Length(as_int, Length::Type::Absolute)); - unsigned as_uint = string.to_uint(ok); - if (ok) - return LengthStyleValue::create(Length(as_uint, Length::Type::Absolute)); + char* endptr = nullptr; + long value = strtol(String(view).characters(), &endptr, 10); + if (endptr && ((!*endptr) || (endptr[0] == 'p' && endptr[1] == 'x' && endptr[2] == '\0'))) + return LengthStyleValue::create(Length(value, Length::Type::Absolute)); if (string == "inherit") return InheritStyleValue::create(); if (string == "initial")