[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 6/8] linux-user: translate signal number on return f
From: |
riku . voipio |
Subject: |
[Qemu-devel] [PATCH 6/8] linux-user: translate signal number on return from sigtimedwait |
Date: |
Mon, 10 Mar 2014 14:22:58 +0200 |
From: Petar Jovanovic <address@hidden>
On success, sigtimedwait() returns a signal number that needs to be
translated from a host value to a target value.
This change also fixes issues with sigwait (that is implemented using
sigtimedwait()).
Signed-off-by: Petar Jovanovic <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
linux-user/syscall.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1f64867..e2c10cc 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6185,11 +6185,17 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
arg1,
puts = NULL;
}
ret = get_errno(sigtimedwait(&set, &uinfo, puts));
- if (!is_error(ret) && arg2) {
- if (!(p = lock_user(VERIFY_WRITE, arg2,
sizeof(target_siginfo_t), 0)))
- goto efault;
- host_to_target_siginfo(p, &uinfo);
- unlock_user(p, arg2, sizeof(target_siginfo_t));
+ if (!is_error(ret)) {
+ if (arg2) {
+ p = lock_user(VERIFY_WRITE, arg2, sizeof(target_siginfo_t),
+ 0);
+ if (!p) {
+ goto efault;
+ }
+ host_to_target_siginfo(p, &uinfo);
+ unlock_user(p, arg2, sizeof(target_siginfo_t));
+ }
+ ret = host_to_target_signal(ret);
}
}
break;
--
1.8.1.2
- [Qemu-devel] [PULL 0/8] linux-user update for 2.0, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 3/8] linux-user: Don't use UID16 on AArch64, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 4/8] linux-user: Fix getresuid, getresgid if !USE_UID16, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 2/8] linux-user: AArch64: Implement SA_RESTORER for signal handlers, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 5/8] linux-user: Implement sendmmsg syscall, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 1/8] linux-user/signal.c: Fix AArch64 big-endian FP register restore, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 6/8] linux-user: translate signal number on return from sigtimedwait,
riku . voipio <=
- [Qemu-devel] [PATCH 8/8] linux-user: set minimum kernel version to 2.6.32, riku . voipio, 2014/03/10
- [Qemu-devel] [PATCH 7/8] linux-user: correct handling of break exception for MIPS, riku . voipio, 2014/03/10
- Re: [Qemu-devel] [PULL 0/8] linux-user update for 2.0, Peter Maydell, 2014/03/10