From a5e32dfc7c3cd2899739298d80a2e707cc025bb2 Mon Sep 17 00:00:00 2001 From: "Alon Zakai (kripken)" Date: Sat, 27 May 2017 12:48:34 -0700 Subject: fix call depth detection in wasm-opt interpreting --- src/tools/wasm-opt.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/tools/wasm-opt.cpp') diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp index 0603ae93c..35d5b6787 100644 --- a/src/tools/wasm-opt.cpp +++ b/src/tools/wasm-opt.cpp @@ -80,7 +80,7 @@ struct ExecutionResults { arguments.push_back(Literal(param)); } try { - return instance.callFunctionInternal(func->name, arguments); + return instance.callFunction(func->name, arguments); } catch (const TrapException&) { return Literal(); } -- cgit v1.2.3 From 9b3594b4c704d8562b583da7f27711373ff17f3c Mon Sep 17 00:00:00 2001 From: "Alon Zakai (kripken)" Date: Wed, 31 May 2017 10:50:16 -0700 Subject: fix fuzz-exec catching of traps, they can occur during init, not just call --- src/tools/wasm-opt.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/tools/wasm-opt.cpp') diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp index 35d5b6787..184dbae1b 100644 --- a/src/tools/wasm-opt.cpp +++ b/src/tools/wasm-opt.cpp @@ -73,15 +73,16 @@ struct ExecutionResults { Literal run(Function* func, Module& wasm) { ShellExternalInterface interface; - ModuleInstance instance(wasm, &interface); - LiteralList arguments; - for (WasmType param : func->params) { - // zeros in arguments TODO: more? - arguments.push_back(Literal(param)); - } try { + ModuleInstance instance(wasm, &interface); + LiteralList arguments; + for (WasmType param : func->params) { + // zeros in arguments TODO: more? + arguments.push_back(Literal(param)); + } return instance.callFunction(func->name, arguments); } catch (const TrapException&) { + // may throw in instance creation (init of offsets) or call itself return Literal(); } } -- cgit v1.2.3