Fix issues detected by Coverity (#1776)

- wasm_func_call always return trap if failed
- in Debug, always run LEAK_TEST in samples/wasm-c-api
This commit is contained in:
liang.he
2022-12-01 22:03:09 +08:00
committed by GitHub
parent 1652f22a77
commit fc8f70cfa4
14 changed files with 143 additions and 66 deletions

View File

@ -50,9 +50,11 @@ own wasm_ref_t* call_v_r(const wasm_func_t* func) {
wasm_val_t rs[] = { WASM_INIT_VAL };
wasm_val_vec_t args = WASM_EMPTY_VEC;
wasm_val_vec_t results = WASM_ARRAY_VEC(rs);
if (wasm_func_call(func, &args, &results)) {
printf("> Error calling function!\n");
exit(1);
wasm_trap_t *trap = wasm_func_call(func, &args, &results);
if (trap) {
printf("> Error calling function!\n");
wasm_trap_delete(trap);
exit(1);
}
printf("okay\n");
return rs[0].of.ref;
@ -63,9 +65,11 @@ void call_r_v(const wasm_func_t* func, wasm_ref_t* ref) {
wasm_val_t vs[1] = { WASM_REF_VAL(ref) };
wasm_val_vec_t args = WASM_ARRAY_VEC(vs);
wasm_val_vec_t results = WASM_EMPTY_VEC;
if (wasm_func_call(func, &args, &results)) {
printf("> Error calling function!\n");
exit(1);
wasm_trap_t *trap = wasm_func_call(func, &args, &results);
if (trap) {
printf("> Error calling function!\n");
wasm_trap_delete(trap);
exit(1);
}
printf("okay\n");
}
@ -76,9 +80,11 @@ own wasm_ref_t* call_r_r(const wasm_func_t* func, wasm_ref_t* ref) {
wasm_val_t rs[1] = { WASM_INIT_VAL };
wasm_val_vec_t args = WASM_ARRAY_VEC(vs);
wasm_val_vec_t results = WASM_ARRAY_VEC(rs);
if (wasm_func_call(func, &args, &results)) {
printf("> Error calling function!\n");
exit(1);
wasm_trap_t *trap = wasm_func_call(func, &args, &results);
if (trap) {
printf("> Error calling function!\n");
wasm_trap_delete(trap);
exit(1);
}
printf("okay\n");
return rs[0].of.ref;
@ -89,9 +95,11 @@ void call_ir_v(const wasm_func_t* func, int32_t i, wasm_ref_t* ref) {
wasm_val_t vs[2] = { WASM_I32_VAL(i), WASM_REF_VAL(ref) };
wasm_val_vec_t args = WASM_ARRAY_VEC(vs);
wasm_val_vec_t results = WASM_EMPTY_VEC;
if (wasm_func_call(func, &args, &results)) {
printf("> Error calling function!\n");
exit(1);
wasm_trap_t *trap = wasm_func_call(func, &args, &results);
if (trap) {
printf("> Error calling function!\n");
wasm_trap_delete(trap);
exit(1);
}
printf("okay\n");
}
@ -102,9 +110,11 @@ own wasm_ref_t* call_i_r(const wasm_func_t* func, int32_t i) {
wasm_val_t rs[1] = { WASM_INIT_VAL };
wasm_val_vec_t args = WASM_ARRAY_VEC(vs);
wasm_val_vec_t results = WASM_ARRAY_VEC(rs);
if (wasm_func_call(func, &args, &results)) {
printf("> Error calling function!\n");
exit(1);
wasm_trap_t *trap = wasm_func_call(func, &args, &results);
if (trap) {
printf("> Error calling function!\n");
wasm_trap_delete(trap);
exit(1);
}
printf("okay\n");
return rs[0].of.ref;