mirror of
https://github.com/qemu/qemu.git
synced 2024-11-26 12:23:36 +08:00
linux-user: Fix wrong type used for argument to rt_sigqueueinfo
The third argument to the rt_sigqueueinfo syscall is a pointer to a siginfo_t, not a pointer to a sigset_t. Fix the error in the arguments to lock_user(), which meant that we would not have detected some faults that we should. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
ba4537805d
commit
4debae6fa5
@ -7876,8 +7876,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
case TARGET_NR_rt_sigqueueinfo:
|
||||
{
|
||||
siginfo_t uinfo;
|
||||
if (!(p = lock_user(VERIFY_READ, arg3, sizeof(target_sigset_t), 1)))
|
||||
|
||||
p = lock_user(VERIFY_READ, arg3, sizeof(target_siginfo_t), 1);
|
||||
if (!p) {
|
||||
goto efault;
|
||||
}
|
||||
target_to_host_siginfo(&uinfo, p);
|
||||
unlock_user(p, arg1, 0);
|
||||
ret = get_errno(sys_rt_sigqueueinfo(arg1, arg2, &uinfo));
|
||||
|
Loading…
Reference in New Issue
Block a user