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') 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