diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 2060e561a2..ee7c34027e 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -12141,9 +12141,13 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1, int dirfd = arg1; int flags = arg3; - p = lock_user_string(arg2); - if (p == NULL) { - return -TARGET_EFAULT; + p = NULL; + /* Since Linux 6.11, the path argument may be NULL */ + if (arg2 != 0) { + p = lock_user_string(arg2); + if (p == NULL) { + return -TARGET_EFAULT; + } } #if defined(__NR_statx) {