diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2021-06-01 16:55:59 +0200 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2021-06-20 16:21:01 +0200 |
commit | ee3500d33a7431fbcc357a35ce1a46fcf13128cc (patch) | |
tree | 532679511c33d6989edf3a4d6f4094dc51ff79ad | |
parent | e10fbe8f34843891b18f68f76320b43606f4df69 (diff) | |
download | qemu-ee3500d33a7431fbcc357a35ce1a46fcf13128cc.zip qemu-ee3500d33a7431fbcc357a35ce1a46fcf13128cc.tar.gz qemu-ee3500d33a7431fbcc357a35ce1a46fcf13128cc.tar.bz2 |
linux-user: Let sigaction query SIGKILL/SIGSTOP
The kernel allows doing this, so let's allow this in qemu as well.
Valgrind relies on this.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210601145600.3131040-2-iii@linux.ibm.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-rw-r--r-- | linux-user/signal.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/linux-user/signal.c b/linux-user/signal.c index 0f19c59..a8faea6 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -853,7 +853,11 @@ int do_sigaction(int sig, const struct target_sigaction *act, trace_signal_do_sigaction_guest(sig, TARGET_NSIG); - if (sig < 1 || sig > TARGET_NSIG || sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP) { + if (sig < 1 || sig > TARGET_NSIG) { + return -TARGET_EINVAL; + } + + if (act && (sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP)) { return -TARGET_EINVAL; } |