trap on wasi_proc_exit
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
pub use wasi_c2::WasiCtx;
|
pub use wasi_c2::WasiCtx;
|
||||||
|
use wasmtime::Trap;
|
||||||
|
|
||||||
// Defines a `struct Wasi` with member fields and appropriate APIs for dealing
|
// Defines a `struct Wasi` with member fields and appropriate APIs for dealing
|
||||||
// with all the various WASI exports.
|
// with all the various WASI exports.
|
||||||
@@ -32,6 +33,13 @@ resolution.",
|
|||||||
missing_memory: { wasi_c2::snapshots::preview_1::types::Errno::Inval },
|
missing_memory: { wasi_c2::snapshots::preview_1::types::Errno::Inval },
|
||||||
});
|
});
|
||||||
|
|
||||||
fn wasi_proc_exit(code: i32) {
|
fn wasi_proc_exit(status: i32) -> Result<(), Trap> {
|
||||||
panic!("stubbed out: wasi proc exit with code {}", code)
|
if status >= 0 && status < 126 {
|
||||||
|
Err(Trap::i32_exit(status))
|
||||||
|
} else {
|
||||||
|
Err(Trap::new(format!(
|
||||||
|
"exit with invalid exit status outside of [0..126): {}",
|
||||||
|
status,
|
||||||
|
)))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user