diff options
author | Richard Henderson | 2021-04-23 01:02:27 +0200 |
---|---|---|
committer | Laurent Vivier | 2021-05-18 07:10:46 +0200 |
commit | fb80439b1ede60d214ae5bbacc29b137a89b9e72 (patch) | |
tree | de3ac47f0a22d5833de86d2519499863f8abd207 /linux-user | |
parent | linux-user/alpha: Share code for TARGET_NR_sigaction (diff) | |
download | qemu-fb80439b1ede60d214ae5bbacc29b137a89b9e72.tar.gz qemu-fb80439b1ede60d214ae5bbacc29b137a89b9e72.tar.xz qemu-fb80439b1ede60d214ae5bbacc29b137a89b9e72.zip |
linux-user: Tidy TARGET_NR_rt_sigaction
Initialize variables instead of elses.
Use an else instead of a goto.
Add braces.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210422230227.314751-8-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'linux-user')
-rw-r--r-- | linux-user/syscall.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 8d7ac1ebcf..c9f812091c 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9060,32 +9060,26 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, target_ulong sigsetsize = arg4; target_ulong restorer = 0; #endif - struct target_sigaction *act; - struct target_sigaction *oact; + struct target_sigaction *act = NULL; + struct target_sigaction *oact = NULL; if (sigsetsize != sizeof(target_sigset_t)) { return -TARGET_EINVAL; } - if (arg2) { - if (!lock_user_struct(VERIFY_READ, act, arg2, 1)) { - return -TARGET_EFAULT; - } - } else { - act = NULL; + if (arg2 && !lock_user_struct(VERIFY_READ, act, arg2, 1)) { + return -TARGET_EFAULT; } - if (arg3) { - if (!lock_user_struct(VERIFY_WRITE, oact, arg3, 0)) { - ret = -TARGET_EFAULT; - goto rt_sigaction_fail; + if (arg3 && !lock_user_struct(VERIFY_WRITE, oact, arg3, 0)) { + ret = -TARGET_EFAULT; + } else { + ret = get_errno(do_sigaction(arg1, act, oact, restorer)); + if (oact) { + unlock_user_struct(oact, arg3, 1); } - } else - oact = NULL; - ret = get_errno(do_sigaction(arg1, act, oact, restorer)); - rt_sigaction_fail: - if (act) + } + if (act) { unlock_user_struct(act, arg2, 0); - if (oact) - unlock_user_struct(oact, arg3, 1); + } } return ret; #ifdef TARGET_NR_sgetmask /* not on alpha */ |