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 187237f655e6e5de01d2746f2ddbed284ed7cbe1..9570946a6958f33e3bc2dbc696b181d05fbe46f8 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 168b6958e2b8b9d3464ee4333a7308de1d8aafd2..1f29c692b7effcdcaad0b376481cc379225e09c9 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;
This page took 0.025537 seconds and 5 git commands to generate.