Skip to content

Commit 9d1dc3e

Browse files
authored
Fix: Fix null pointer dereference in wasm_c_api.c (#4863)
1 parent f159cc5 commit 9d1dc3e

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

core/iwasm/common/wasm_c_api.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3459,17 +3459,26 @@ wasm_func_call(const wasm_func_t *func, const wasm_val_vec_t *params,
34593459
wasm_runtime_free(argv);
34603460

34613461
#if WASM_ENABLE_DUMP_CALL_STACK != 0 && WASM_ENABLE_THREAD_MGR != 0
3462-
WASMCluster *cluster = wasm_exec_env_get_cluster(exec_env);
3463-
cluster_frames = &cluster->exception_frames;
3464-
wasm_cluster_traverse_lock(exec_env);
3462+
WASMCluster *cluster = NULL;
3463+
if (exec_env) {
3464+
cluster = wasm_exec_env_get_cluster(exec_env);
3465+
}
3466+
if (cluster) {
3467+
cluster_frames = &cluster->exception_frames;
3468+
}
3469+
if (cluster_frames) {
3470+
wasm_cluster_traverse_lock(exec_env);
3471+
}
34653472
#endif
34663473

34673474
wasm_trap_t *trap = wasm_trap_new_internal(
34683475
func->store, func->inst_comm_rt,
34693476
wasm_runtime_get_exception(func->inst_comm_rt), cluster_frames);
34703477

34713478
#if WASM_ENABLE_DUMP_CALL_STACK != 0 && WASM_ENABLE_THREAD_MGR != 0
3472-
wasm_cluster_traverse_unlock(exec_env);
3479+
if (cluster_frames) {
3480+
wasm_cluster_traverse_unlock(exec_env);
3481+
}
34733482
#endif
34743483
return trap;
34753484
}

0 commit comments

Comments
 (0)