diff options
author | Laurent Meyer <meyerlau@fr.ibm.com> | 2006-04-27 21:40:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-28 11:33:47 -0400 |
commit | 28f223782bca914ae65d08234c57c2175ecd7f5d (patch) | |
tree | 17100f49e1e1b0c11bfa6f817b412363407d20e3 /arch/s390/kernel/compat_signal.c | |
parent | 6dcfca78d4c036c9d012f913e2a622aae218827f (diff) |
[PATCH] s390: alternate signal stack handling bug
If a signal handler has been established with the SA_ONSTACK option but no
alternate stack is provided with sigaltstack(), the kernel still tries to
install the alternate stack. Also when setting an alternate stack with
sigalstack() and the SS_DISABLE flag, the kernel tries to install the
alternate stack on signal delivery. Use the correct conditions sas_ss_flags()
to check if the alternate stack has to be used.
Signed-off-by: Laurent Meyer <meyerlau@fr.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@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/compat_signal.c')
-rw-r--r-- | arch/s390/kernel/compat_signal.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index 5291b5f8788d..b4c815d8ef75 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -430,7 +430,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
430 | 430 | ||
431 | /* This is the X/Open sanctioned signal stack switching. */ | 431 | /* This is the X/Open sanctioned signal stack switching. */ |
432 | if (ka->sa.sa_flags & SA_ONSTACK) { | 432 | if (ka->sa.sa_flags & SA_ONSTACK) { |
433 | if (! on_sig_stack(sp)) | 433 | if (! sas_ss_flags(sp)) |
434 | sp = current->sas_ss_sp + current->sas_ss_size; | 434 | sp = current->sas_ss_sp + current->sas_ss_size; |
435 | } | 435 | } |
436 | 436 | ||