From 342172f810863ec8fcb9f4db3093b2f61d7ff5f9 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 1 Aug 2009 11:18:56 -0700 Subject: [PATCH] --- yaml --- r: 156174 b: refs/heads/master c: 0dd8486b5cfe8048e0613334659d9252ecd1b08a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/signal.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) 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;