LibWeb: Fix StringView OOB access when parsing 3-character legacy color

Found by Domato.
This commit is contained in:
Andreas Kling 2024-07-19 14:44:10 +02:00 committed by Andreas Kling
parent 7360f7fbc6
commit 1c00e5688d
Notes: github-actions[bot] 2024-07-20 07:32:06 +00:00
3 changed files with 11 additions and 0 deletions

View File

@ -0,0 +1 @@
PASS (didn't crash)

View File

@ -0,0 +1,7 @@
<script src="../include.js"></script>
<body bgcolor="foo">
<script>
test(() => {
println("PASS (didn't crash)");
});
</script>

View File

@ -4879,6 +4879,9 @@ Optional<Color> parse_legacy_color_value(StringView string)
}
auto to_hex = [&](StringView string) -> u8 {
if (length == 1) {
return hex_nibble_to_u8(string[0]);
}
auto nib1 = hex_nibble_to_u8(string[0]);
auto nib2 = hex_nibble_to_u8(string[1]);
return nib1 << 4 | nib2;