You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently, while executing the same wasm file with different wasm runtime tools, the obtained results were different. Here are related files.
The given testcase simply mutated a wasm file, which was obtained by compiling C program generated with Csmith using Emscripten Compiler(Emcc).
The original C program is c_file.c, the compilation results with Emscripten is wasm_file.wasm, and its wat format is wat_file.wat.
We mutated the wat file to change its global.set 0 in line 7627 with local.set 0. The result after mutation is mutated_file.wat, and its wasm format is mutated_file.wasm.
We use runtime tools such as wasmer, wasmtime, wasmedge and wasmi to execute mutated_file.wasm. Wasmtime outputs checksum results with runtime error, while other tools only output checksum results. The execution results of different tools are shown in the following figure.
It seems that tools such as wasmtime and wasmi validate exit status, while other tools do not. Mutation makes the provided status isn't in the printed range, resulting in runtime error for tools like wasmtime when outputting checksum results.
The current documentation for proc_exit does not exactly specify what to do here. So I wonder whether this behavior is still desired and/or should be codified in the documentation.
If not wasmtime should remove it. If so other runtimes should be updated. Thanks a lot!
The text was updated successfully, but these errors were encountered:
Recently, while executing the same wasm file with different wasm runtime tools, the obtained results were different. Here are related files.
The given testcase simply mutated a wasm file, which was obtained by compiling C program generated with
Csmith
usingEmscripten Compiler
(Emcc).The original C program is
c_file.c
, the compilation results with Emscripten iswasm_file.wasm
, and its wat format iswat_file.wat
.We mutated the wat file to change its
global.set 0
in line 7627 withlocal.set 0
. The result after mutation ismutated_file.wat
, and its wasm format ismutated_file.wasm
.We use runtime tools such as wasmer, wasmtime, wasmedge and wasmi to execute
mutated_file.wasm
. Wasmtime outputs checksum results with runtime error, while other tools only output checksum results. The execution results of different tools are shown in the following figure.It seems that tools such as wasmtime and wasmi validate exit status, while other tools do not. Mutation makes the provided status isn't in the printed range, resulting in runtime error for tools like wasmtime when outputting checksum results.
The current documentation for
proc_exit
does not exactly specify what to do here. So I wonder whether this behavior is still desired and/or should be codified in the documentation.If not wasmtime should remove it. If so other runtimes should be updated. Thanks a lot!
The text was updated successfully, but these errors were encountered: