From: Heiko Carstens Consider return value of __put_user() when setting up a signal frame instead of ignoring it. Cc: Martin Schwidefsky Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton --- arch/s390/kernel/signal.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN arch/s390/kernel/signal.c~s390-bug-in-setup_rt_frame arch/s390/kernel/signal.c --- devel/arch/s390/kernel/signal.c~s390-bug-in-setup_rt_frame 2006-04-29 01:46:59.000000000 -0700 +++ devel-akpm/arch/s390/kernel/signal.c 2006-04-29 01:46:59.000000000 -0700 @@ -358,8 +358,9 @@ static int setup_rt_frame(int sig, struc } else { regs->gprs[14] = (unsigned long) frame->retcode | PSW_ADDR_AMODE; - err |= __put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn, - (u16 __user *)(frame->retcode)); + if (__put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn, + (u16 __user *)(frame->retcode))) + goto give_sigsegv; } /* Set up backchain. */ _