summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/signal.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2006-05-01 21:16:15 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-05-02 03:17:46 +0200
commitb44df334a7e909d88cf5c54cc0481b4e2eaeca23 (patch)
tree17654870a23ee053fe4edc908c452d32968ff1a9 /arch/s390/kernel/signal.c
parent[PATCH] s390: fix ipd handling (diff)
downloadlinux-b44df334a7e909d88cf5c54cc0481b4e2eaeca23.tar.xz
linux-b44df334a7e909d88cf5c54cc0481b4e2eaeca23.zip
[PATCH] s390: bug in setup_rt_frame
Consider return value of __put_user() when setting up a signal frame instead of ignoring it. Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/s390/kernel/signal.c')
-rw-r--r--arch/s390/kernel/signal.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index ae1927e48cfb..d48cfc726b68 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -358,8 +358,9 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
} 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. */