diff --git a/libc/signal.cc b/libc/signal.cc index 5be5c4b8eec4040006976a0de78b058160818c13..18f5f6e7eec7addf235c0588a17fd4bf3e0f7baa 100644 --- a/libc/signal.cc +++ b/libc/signal.cc @@ -135,6 +135,11 @@ int sigprocmask(int how, const sigset_t* _set, sigset_t* _oldset) int sigaction(int signum, const struct sigaction* act, struct sigaction* oldact) { + // FIXME: We do not support any sa_flags besides SA_SIGINFO. + if (signum < 0 || signum >= (int)nsignals) { + errno = EINVAL; + return -1; + } if (oldact) { *oldact = signal_actions[signum]; }