s390/compat: correct check for EFAULT in rt-signal frame creation
The return code of the __put_user call to store the rt_sigreturn system call to the user stack if not properly checked, the err variable is only checked before to the __put_user. Use an if statement instead. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
96619fc1b3
commit
41932bc1c8
|
@ -412,8 +412,9 @@ static int setup_rt_frame32(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||||
regs->gprs[14] = (__u64 __force) ka->sa.sa_restorer | PSW32_ADDR_AMODE;
|
regs->gprs[14] = (__u64 __force) ka->sa.sa_restorer | PSW32_ADDR_AMODE;
|
||||||
} else {
|
} else {
|
||||||
regs->gprs[14] = (__u64 __force) frame->retcode | PSW32_ADDR_AMODE;
|
regs->gprs[14] = (__u64 __force) frame->retcode | PSW32_ADDR_AMODE;
|
||||||
err |= __put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn,
|
if (__put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn,
|
||||||
(u16 __force __user *)(frame->retcode));
|
(u16 __force __user *)(frame->retcode)))
|
||||||
|
goto give_sigsegv;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set up backchain. */
|
/* Set up backchain. */
|
||||||
|
|
Loading…
Reference in New Issue