qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v2 6/7] linux-user: Fix syslog


From: Lena Djokic
Subject: [Qemu-devel] [PATCH v2 6/7] linux-user: Fix syslog
Date: Thu, 24 Nov 2016 17:08:57 +0100

Third argument represents lenght not second.
If second argument is NULL it should be passed without
using lock_user function which would, in that case, return
EFAULT, and system call supports passing NULL as second argument.

Signed-off-by: Lena Djokic <address@hidden>
---
 linux-user/syscall.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 61c4126..3faf4f0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9426,7 +9426,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
 #if defined(TARGET_NR_syslog)
     case TARGET_NR_syslog:
         {
-            int len = arg2;
+            int len = arg3;
 
             switch (arg1) {
             case TARGET_SYSLOG_ACTION_CLOSE:         /* Close log */
@@ -9450,13 +9450,13 @@ abi_long do_syscall(void *cpu_env, int num, abi_long 
arg1,
                         goto fail;
                     }
                     ret = 0;
-                    if (len == 0) {
-                        break;
-                    }
-                    p = lock_user(VERIFY_WRITE, arg2, arg3, 0);
-                    if (!p) {
-                        ret = -TARGET_EFAULT;
-                        goto fail;
+                    p = NULL;
+                    if (arg2) {
+                        p = lock_user(VERIFY_WRITE, arg2, arg3, 0);
+                        if (!p) {
+                            ret = -TARGET_EFAULT;
+                            goto fail;
+                        }
                     }
                     ret = get_errno(sys_syslog((int)arg1, p, (int)arg3));
                     unlock_user(p, arg2, arg3);
-- 
2.7.4




reply via email to

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