| Index: src/wasm/wasm-interpreter.cc
|
| diff --git a/src/wasm/wasm-interpreter.cc b/src/wasm/wasm-interpreter.cc
|
| index e88832a544a3d4b7ee996fbcb56899f4587d50b9..ed6b87059185bd5bfdc82c9a44766a97ef852ec7 100644
|
| --- a/src/wasm/wasm-interpreter.cc
|
| +++ b/src/wasm/wasm-interpreter.cc
|
| @@ -663,13 +663,16 @@
|
| WasmInstance* instance) {
|
| // TODO(ahaas): Move memory allocation to wasm-module.cc for better
|
| // encapsulation.
|
| - if (delta_pages > wasm::WasmModule::kV8MaxPages) {
|
| + if (delta_pages > wasm::WasmModule::kMaxMemPages) {
|
| return -1;
|
| }
|
| uint32_t old_size = instance->mem_size;
|
| uint32_t new_size;
|
| byte* new_mem_start;
|
| if (instance->mem_size == 0) {
|
| + if (delta_pages > wasm::WasmModule::kMaxMemPages) {
|
| + return -1;
|
| + }
|
| // TODO(gdeepti): Fix bounds check to take into account size of memtype.
|
| new_size = delta_pages * wasm::WasmModule::kPageSize;
|
| new_mem_start = static_cast<byte*>(calloc(new_size, sizeof(byte)));
|
| @@ -680,7 +683,7 @@
|
| DCHECK_NOT_NULL(instance->mem_start);
|
| new_size = old_size + delta_pages * wasm::WasmModule::kPageSize;
|
| if (new_size >
|
| - wasm::WasmModule::kV8MaxPages * wasm::WasmModule::kPageSize) {
|
| + wasm::WasmModule::kMaxMemPages * wasm::WasmModule::kPageSize) {
|
| return -1;
|
| }
|
| new_mem_start = static_cast<byte*>(realloc(instance->mem_start, new_size));
|
| @@ -692,6 +695,9 @@
|
| }
|
| instance->mem_start = new_mem_start;
|
| instance->mem_size = new_size;
|
| + // realloc
|
| + // update mem_start
|
| + // update mem_size
|
| return static_cast<int32_t>(old_size / WasmModule::kPageSize);
|
| }
|
|
|
|
|