wasix-org / wasix-libc

wasix libc implementation for WebAssembly
https://wasi.dev
Other
114 stars 19 forks source link

sigaction does not respect SA_SIGINFO #12

Open Arshia001 opened 1 year ago

Arshia001 commented 1 year ago

When setting a signal handler via sigaction, if the SA_SIGINFO flag is specified, the callback's signature should be void callback(int signo, siginfo_t *info, void *context) instead of the usual void callback(int signo) (see: https://man7.org/linux/man-pages/man2/sigaction.2.html#DESCRIPTION). This is not respected by the current implementation, so when the signal is received, calling the callback function results in indirect call type mismatch.

Expected behaviour (correct): SA_SIGINFO should be respected. Note this requires the generation of the siginfo_t struct which holds data that may or may not be available to a wasm module.

Expected behaviour (quick-n-dirty or if otherwise impossible to implement the correct behaviour): An error should be reported from sigaction indicating that SA_SIGINFO is not available in wasm.