qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL v2 07/17] signal/all/do_sigaltstack remove __get_user


From: riku . voipio
Subject: [Qemu-devel] [PULL v2 07/17] signal/all/do_sigaltstack remove __get_user value check
Date: Tue, 17 Jun 2014 17:56:50 +0300

From: Riku Voipio <address@hidden>

Access is already checked in the lock_user_struct
call before.

Signed-off-by: Riku Voipio <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
 linux-user/signal.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/linux-user/signal.c b/linux-user/signal.c
index 2a1c681..f55076d 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -619,11 +619,12 @@ abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong 
uoss_addr, abi_ulong sp)
         struct target_sigaltstack ss;
 
        ret = -TARGET_EFAULT;
-        if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)
-           || __get_user(ss.ss_sp, &uss->ss_sp)
-           || __get_user(ss.ss_size, &uss->ss_size)
-           || __get_user(ss.ss_flags, &uss->ss_flags))
+        if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)) {
             goto out;
+        }
+        __get_user(ss.ss_sp, &uss->ss_sp);
+        __get_user(ss.ss_size, &uss->ss_size);
+        __get_user(ss.ss_flags, &uss->ss_flags);
         unlock_user_struct(uss, uss_addr, 0);
 
        ret = -TARGET_EPERM;
-- 
2.0.0.rc2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]