|
@@ -148,7 +148,6 @@ score_rt_sigreturn(struct pt_regs *regs)
|
|
|
{
|
|
|
struct rt_sigframe __user *frame;
|
|
|
sigset_t set;
|
|
|
- stack_t st;
|
|
|
int sig;
|
|
|
|
|
|
/* Always make any pending restarted system calls return -EINTR */
|
|
@@ -168,12 +167,10 @@ score_rt_sigreturn(struct pt_regs *regs)
|
|
|
else if (sig)
|
|
|
force_sig(sig, current);
|
|
|
|
|
|
- if (__copy_from_user(&st, &frame->rs_uc.uc_stack, sizeof(st)))
|
|
|
- goto badframe;
|
|
|
-
|
|
|
/* It is more difficult to avoid calling this function than to
|
|
|
call it and ignore errors. */
|
|
|
- do_sigaltstack((stack_t __user *)&st, NULL, regs->regs[0]);
|
|
|
+ if (do_sigaltstack(&frame->rs_uc.uc_stack, NULL, regs->regs[0]) == -EFAULT)
|
|
|
+ goto badframe;
|
|
|
regs->is_syscall = 0;
|
|
|
|
|
|
__asm__ __volatile__(
|