diff options
author | Nico Weber <thakis@chromium.org> | 2022-01-13 20:20:06 -0500 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-01-14 11:12:24 +0100 |
commit | 1b944b4c41321c1180b175a257674a9679a0b88a (patch) | |
tree | f20bb1ffc77960b0ad50844086ea081f4b47651f /Userland/Applications/Settings | |
parent | 23cde7685cf9efa229f3cab05eeca2dbf5f79886 (diff) | |
download | serenity-1b944b4c41321c1180b175a257674a9679a0b88a.zip |
LibJS: Fix substr() with negative arguments larger than string length
length_in_code_units() returns a size_t, which is 64-bit unsigned
in i686 builds. `size + (i32)int_length` hence produced a 64-bit
unsigned result, so a negative value would wrap around and become
a very large number.
As fix, just omit the cast -- we assign the result of max() to
a double anyways.
With this, all test262 tests in annexB/built-ins/String/prototype pass.
Diffstat (limited to 'Userland/Applications/Settings')
0 files changed, 0 insertions, 0 deletions