[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 12/16] [RFC] linux-user: fix sigismember() check
From: |
Miloš Stojanović |
Subject: |
[Qemu-devel] [PATCH 12/16] [RFC] linux-user: fix sigismember() check |
Date: |
Fri, 12 May 2017 13:02:20 +0200 |
Fix copying between the host and target signal sets for the case when the
target set is larger than the host set.
sigismember() returns 1 if the specified signal number is a member of
the specified signal set, but it can also return -1 if an error occurs
(e.g. an out of range signal number is specified). All non-zero values
would cause the signal to be added, so a comparison with 1 is added to
assure that only the signals which are really in the set get added to
the other set.
Signed-off-by: Miloš Stojanović <address@hidden>
---
linux-user/signal.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 59d70ec..d72caaf 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -149,7 +149,7 @@ static void host_to_target_sigset_internal(target_sigset_t
*d,
int i;
target_sigemptyset(d);
for (i = 1; i <= TARGET_NSIG; i++) {
- if (sigismember(s, i)) {
+ if (sigismember(s, i) == 1) {
target_sigaddset(d, host_to_target_signal(i));
}
}
@@ -171,7 +171,7 @@ static void target_to_host_sigset_internal(sigset_t *d,
int i;
sigemptyset(d);
for (i = 1; i <= TARGET_NSIG; i++) {
- if (target_sigismember(s, i)) {
+ if (target_sigismember(s, i) == 1) {
sigaddset(d, target_to_host_signal(i));
}
}
--
1.9.1
- [Qemu-devel] [PATCH 00/16] Augment support for signal handling, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 07/16] linux-user: add rt_tgsigqueueinfo() strace, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 13/16] [RFC] linux-user: add functions for working with the target signal mask, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 03/16] linux-user: fix ssetmask() system call, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 08/16] linux-user: fix inconsistent spaces in print_siginfo() output, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 12/16] [RFC] linux-user: fix sigismember() check,
Miloš Stojanović <=
- [Qemu-devel] [PATCH 01/16] linux-user: add strace for getuid(), gettid(), getppid(), geteuid(), Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 10/16] [RFC] linux-user: add support for tracking the target signal mask, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 05/16] linux-user: fix argument type declaration of rt_sigqueinfo() syscall, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 02/16] linux-user: add tkill(), tgkill() and rt_sigqueueinfo() strace, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 11/16] [RFC] linux-user: add target_sigdelset() and target_sigorset(), Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 06/16] linux-user: add support for rt_tgsigqueueinfo() system call, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 04/16] linux-user: fix mismatch of lock/unlock_user() invocations in rt_sigqueinfo() syscall, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 15/16] [RFC] linux-user: add support for multiplexing larger target signals, Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 09/16] linux-user: add strace support for uinfo structure of rt_sigqueueinfo() and rt_tgsigqueueinfo(), Miloš Stojanović, 2017/05/12
- [Qemu-devel] [PATCH 16/16] [RFC] linux-user: add support for multiplexing signals in rt_sigqueueinfo(), rt_tgsigqueueinfo(), kill() and tgkill() syscalls., Miloš Stojanović, 2017/05/12