cris: don't leave ->uc_stack unitialized - we'll use its contents on sigreturn
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 23 Dec 2012 07:11:49 +0000 (02:11 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Feb 2013 23:15:53 +0000 (18:15 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/cris/arch-v10/kernel/signal.c
arch/cris/arch-v32/kernel/signal.c

index 187237f..9570946 100644 (file)
@@ -356,6 +356,8 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
 
        err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
 
+       err |= __save_altstack(&frame->uc.uc_stack, rdusp());
+
        if (err)
                goto give_sigsegv;
 
index 168b695..1f29c69 100644 (file)
@@ -365,6 +365,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
        err |= __clear_user(&frame->uc, offsetof(struct ucontext, uc_mcontext));
        err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]);
        err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
+       err |= __save_altstack(&frame->uc.uc_stack, rdusp());
 
        if (err)
                goto give_sigsegv;