diff options
Diffstat (limited to 'src/wasm-binary-reader-interpreter.c')
-rw-r--r-- | src/wasm-binary-reader-interpreter.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/wasm-binary-reader-interpreter.c b/src/wasm-binary-reader-interpreter.c index 3155d98f..57d2fa23 100644 --- a/src/wasm-binary-reader-interpreter.c +++ b/src/wasm-binary-reader-interpreter.c @@ -586,7 +586,7 @@ static WasmResult on_data_segment_data(uint32_t index, assert(ctx->init_expr_value.type == WASM_TYPE_I32); uint32_t address = ctx->init_expr_value.value.i32; uint8_t* dst_data = memory->data; - if ((uint64_t)address + (uint64_t)size > memory->byte_size) + if (size > 0 && (uint64_t)address + (uint64_t)size > memory->byte_size) return WASM_ERROR; memcpy(&dst_data[address], src_data, size); return WASM_OK; |