Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 4a405a978b3d80fb7e8f1f6a9e338cfb740e4298..736f0b00d7ac833ca3409ebd703a90f8ef49a5bc 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -6132,8 +6132,10 @@ i::Handle<i::JSTypedArray> NewTypedArray( |
ASSERT(byte_offset % sizeof(ElementType) == 0); |
+ CHECK(length <= (std::numeric_limits<size_t>::max() / sizeof(ElementType))); |
+ size_t byte_length = length * sizeof(ElementType); |
SetupArrayBufferView( |
- isolate, obj, buffer, byte_offset, length * sizeof(ElementType)); |
+ isolate, obj, buffer, byte_offset, byte_length); |
i::Handle<i::Object> length_object = |
isolate->factory()->NewNumberFromSize(length); |