i write some bare-metal c code need mq_open/mq_unlink syscall, but
the syscall failed in passed name param check, arg1 in this scenario
is the correct address from user-space, arg1 - 1 not.
i have tested in arm cortex-m55 cpu model, maybe should add conditional compile 
macro?

Signed-off-by: Zhang He <zhanghe9...@163.com>
---
 linux-user/syscall.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index fc37028597..be9610176a 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -13058,7 +13058,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int 
num, abi_long arg1,
                 }
                 pposix_mq_attr = &posix_mq_attr;
             }
-            p = lock_user_string(arg1 - 1);
+            p = lock_user_string(arg1);
             if (!p) {
                 return -TARGET_EFAULT;
             }
@@ -13068,7 +13068,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int 
num, abi_long arg1,
         return ret;
 
     case TARGET_NR_mq_unlink:
-        p = lock_user_string(arg1 - 1);
+        p = lock_user_string(arg1);
         if (!p) {
             return -TARGET_EFAULT;
         }
-- 
2.43.0


Reply via email to