diff --git a/[refs] b/[refs] index 699bbf06e90c..b952380e00c6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0083fc2c50e6c5127c2802ad323adf8143ab7856 +refs/heads/master: 0dd8486b5cfe8048e0613334659d9252ecd1b08a diff --git a/trunk/kernel/signal.c b/trunk/kernel/signal.c index f268372c0cc0..64c5deeaca5d 100644 --- a/trunk/kernel/signal.c +++ b/trunk/kernel/signal.c @@ -2464,10 +2464,12 @@ do_sigaltstack (const stack_t __user *uss, stack_t __user *uoss, unsigned long s int ss_flags; error = -EFAULT; - if (!access_ok(VERIFY_READ, uss, sizeof(*uss)) - || __get_user(ss_sp, &uss->ss_sp) - || __get_user(ss_flags, &uss->ss_flags) - || __get_user(ss_size, &uss->ss_size)) + if (!access_ok(VERIFY_READ, uss, sizeof(*uss))) + goto out; + error = __get_user(ss_sp, &uss->ss_sp) | + __get_user(ss_flags, &uss->ss_flags) | + __get_user(ss_size, &uss->ss_size); + if (error) goto out; error = -EPERM;