1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:38:11 +00:00

LibJS: Use Checked<T> for offsets in the SetViewValue AO

Fixes #9338.
This commit is contained in:
Linus Groh 2021-08-11 22:16:25 +01:00
parent 6fc0b2a43d
commit 84053816d5
2 changed files with 29 additions and 3 deletions

View file

@ -7,3 +7,23 @@ test("Issue #9336, integer overflow in get_view_value", () => {
"Data view byte offset 4294967292 is out of range for buffer with length 16"
);
});
test("Issue #9338, integer overflow in set_view_value", () => {
const dataView = new DataView(new ArrayBuffer(16));
expect(() => {
dataView.setUint32(0xfffffffc, 0);
}).toThrowWithMessage(
RangeError,
"Data view byte offset 4294967292 is out of range for buffer with length 16"
);
});
test("Issue #9338, integer overflow in set_view_value - zero-length DataView", () => {
const dataView = new DataView(new ArrayBuffer(4), 4);
expect(() => {
dataView.setUint32(0xfffffffc, 0);
}).toThrowWithMessage(
RangeError,
"Data view byte offset 4294967292 is out of range for buffer with length 0"
);
});