mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-09 13:16:26 +00:00
Add NULL check for memory inst in aot/wasm module malloc/free (#403)
* Add NULL check for memory page in aot/wasm module malloc/free Signed-off-by: Huang Qi <huangqi3@xiaomi.com> * Update aot_runtime.c * Update wasm_runtime.c Co-authored-by: Huang Qi <huangqi3@xiaomi.com> Co-authored-by: Wenyong Huang <wenyong.huang@intel.com>
This commit is contained in:
parent
4bfcbc2cab
commit
0bf7f7310b
|
@ -1280,6 +1280,11 @@ aot_module_malloc(AOTModuleInstance *module_inst, uint32 size,
|
||||||
uint8 *addr = NULL;
|
uint8 *addr = NULL;
|
||||||
uint32 offset = 0;
|
uint32 offset = 0;
|
||||||
|
|
||||||
|
if (!memory_inst) {
|
||||||
|
aot_set_exception(module_inst, "uninitialized memory");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (memory_inst->heap_handle.ptr) {
|
if (memory_inst->heap_handle.ptr) {
|
||||||
addr = mem_allocator_malloc(memory_inst->heap_handle.ptr, size);
|
addr = mem_allocator_malloc(memory_inst->heap_handle.ptr, size);
|
||||||
}
|
}
|
||||||
|
@ -1313,6 +1318,10 @@ aot_module_free(AOTModuleInstance *module_inst, uint32 ptr)
|
||||||
AOTMemoryInstance *memory_inst = aot_get_default_memory(module_inst);
|
AOTMemoryInstance *memory_inst = aot_get_default_memory(module_inst);
|
||||||
AOTModule *module = (AOTModule *)module_inst->aot_module.ptr;
|
AOTModule *module = (AOTModule *)module_inst->aot_module.ptr;
|
||||||
|
|
||||||
|
if (!memory_inst) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ptr) {
|
if (ptr) {
|
||||||
uint8 *addr = (uint8 *)memory_inst->memory_data.ptr + ptr;
|
uint8 *addr = (uint8 *)memory_inst->memory_data.ptr + ptr;
|
||||||
if (memory_inst->heap_handle.ptr
|
if (memory_inst->heap_handle.ptr
|
||||||
|
|
|
@ -1575,6 +1575,11 @@ wasm_module_malloc(WASMModuleInstance *module_inst, uint32 size,
|
||||||
uint8 *addr = NULL;
|
uint8 *addr = NULL;
|
||||||
uint32 offset = 0;
|
uint32 offset = 0;
|
||||||
|
|
||||||
|
if (!memory) {
|
||||||
|
wasm_set_exception(module_inst, "uninitialized memory");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (memory->heap_handle) {
|
if (memory->heap_handle) {
|
||||||
addr = mem_allocator_malloc(memory->heap_handle, size);
|
addr = mem_allocator_malloc(memory->heap_handle, size);
|
||||||
}
|
}
|
||||||
|
@ -1606,7 +1611,13 @@ wasm_module_free(WASMModuleInstance *module_inst, uint32 ptr)
|
||||||
{
|
{
|
||||||
if (ptr) {
|
if (ptr) {
|
||||||
WASMMemoryInstance *memory = module_inst->default_memory;
|
WASMMemoryInstance *memory = module_inst->default_memory;
|
||||||
uint8 *addr = memory->memory_data + ptr;
|
uint8* addr;
|
||||||
|
|
||||||
|
if (!memory) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
addr = memory->memory_data + ptr;
|
||||||
|
|
||||||
if (memory->heap_handle
|
if (memory->heap_handle
|
||||||
&& memory->heap_data <= addr
|
&& memory->heap_data <= addr
|
||||||
|
|
Loading…
Reference in New Issue
Block a user