[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 082/108] linux-user: Split out chown32, setfsgid3
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v2 082/108] linux-user: Split out chown32, setfsgid32, setfsuid32, setgid32, setuid32 |
Date: |
Sat, 9 Jun 2018 17:01:54 -1000 |
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/syscall.c | 82 +++++++++++++++++++++++++++++++-------------
1 file changed, 58 insertions(+), 24 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index af96cc95d3..fc7f301519 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7802,6 +7802,21 @@ IMPL(chown)
}
#endif
+#ifdef TARGET_NR_chown32
+IMPL(chown32)
+{
+ char *p = lock_user_string(arg1);
+ abi_long ret;
+
+ if (!p) {
+ return -TARGET_EFAULT;
+ }
+ ret = get_errno(chown(p, arg2, arg3));
+ unlock_user(p, arg1, 0);
+ return ret;
+}
+#endif
+
IMPL(chroot)
{
char *p = lock_user_string(arg1);
@@ -10815,16 +10830,37 @@ IMPL(setfsgid)
return get_errno(setfsgid(arg1));
}
+#ifdef TARGET_NR_setfsgid32
+IMPL(setfsgid32)
+{
+ return get_errno(setfsgid(arg1));
+}
+#endif
+
IMPL(setfsuid)
{
return get_errno(setfsuid(arg1));
}
+#ifdef TARGET_NR_setfsuid32
+IMPL(setfsuid32)
+{
+ return get_errno(setfsuid(arg1));
+}
+#endif
+
IMPL(setgid)
{
return get_errno(sys_setgid(low2highgid(arg1)));
}
+#ifdef TARGET_NR_setgid32
+IMPL(setgid32)
+{
+ return get_errno(sys_setgid(arg1));
+}
+#endif
+
IMPL(setgroups)
{
int gidsetsize = arg1;
@@ -11017,6 +11053,13 @@ IMPL(setuid)
return get_errno(sys_setuid(low2highuid(arg1)));
}
+#ifdef TARGET_NR_setuid32
+IMPL(setuid32)
+{
+ return get_errno(sys_setuid(arg1));
+}
+#endif
+
#ifdef TARGET_NR_sigaction
IMPL(sigaction)
{
@@ -11943,30 +11986,6 @@ static abi_long do_syscall1(void *cpu_env, unsigned
num, abi_long arg1,
void *p;
switch(num) {
-#ifdef TARGET_NR_chown32
- case TARGET_NR_chown32:
- if (!(p = lock_user_string(arg1)))
- return -TARGET_EFAULT;
- ret = get_errno(chown(p, arg2, arg3));
- unlock_user(p, arg1, 0);
- return ret;
-#endif
-#ifdef TARGET_NR_setuid32
- case TARGET_NR_setuid32:
- return get_errno(sys_setuid(arg1));
-#endif
-#ifdef TARGET_NR_setgid32
- case TARGET_NR_setgid32:
- return get_errno(sys_setgid(arg1));
-#endif
-#ifdef TARGET_NR_setfsuid32
- case TARGET_NR_setfsuid32:
- return get_errno(setfsuid(arg1));
-#endif
-#ifdef TARGET_NR_setfsgid32
- case TARGET_NR_setfsgid32:
- return get_errno(setfsgid(arg1));
-#endif
#ifdef TARGET_NR_mincore
case TARGET_NR_mincore:
{
@@ -13139,6 +13158,9 @@ static impl_fn *syscall_table(unsigned num)
#endif
#ifdef TARGET_NR_chown
SYSCALL(chown);
+#endif
+#ifdef TARGET_NR_chown32
+ SYSCALL(chown32);
#endif
SYSCALL(chroot);
#ifdef TARGET_NR_connect
@@ -13492,8 +13514,17 @@ static impl_fn *syscall_table(unsigned num)
#endif
SYSCALL(setdomainname);
SYSCALL(setfsgid);
+#ifdef TARGET_NR_setfsgid32
+ SYSCALL(setfsgid32);
+#endif
SYSCALL(setfsuid);
+#ifdef TARGET_NR_setfsuid32
+ SYSCALL(setfsuid32);
+#endif
SYSCALL(setgid);
+#ifdef TARGET_NR_setgid32
+ SYSCALL(setgid32);
+#endif
SYSCALL(setgroups);
#ifdef TARGET_NR_setgroups32
SYSCALL(setgroups32);
@@ -13529,6 +13560,9 @@ static impl_fn *syscall_table(unsigned num)
SYSCALL(settimeofday);
SYSCALL(setsid);
SYSCALL(setuid);
+#ifdef TARGET_NR_setuid32
+ SYSCALL(setuid32);
+#endif
#ifdef TARGET_NR_sigaction
SYSCALL(sigaction);
#endif
--
2.17.1
- [Qemu-devel] [PATCH v2 072/108] linux-user: Split out getegid, geteuid, getgid, getuid, lchown, (continued)
- [Qemu-devel] [PATCH v2 072/108] linux-user: Split out getegid, geteuid, getgid, getuid, lchown, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 073/108] linux-user: Split out getgroups, setgroups, setregid, setreuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 075/108] linux-user: Split out chown, getresgid, getresuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 074/108] linux-user: Split out fchown, fchownat, setresgid, setresuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 076/108] linux-user: Split out setfsgid, setfsuid, setgid, setuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 077/108] linux-user: Split out getuid32, getxgid, getxuid, lchown32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 079/108] linux-user: Split out getegid32, geteuid32, getgid32, setregid32, setreuid32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 080/108] linux-user: Split out fchown32, getgroups32, setgroups32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 078/108] linux-user: Split out osf_getsysinfo, osf_setsysinfo, osf_sigprocmask, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 081/108] linux-user: Split out getresgid32, getresuid32, setresgid32, setresuid32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 082/108] linux-user: Split out chown32, setfsgid32, setfsuid32, setgid32, setuid32,
Richard Henderson <=
- [Qemu-devel] [PATCH v2 083/108] linux-user: Split out mincore, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 084/108] linux-user: Split out fadvise64, fadvise64_64, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 085/108] linux-user: Split out cacheflush, fcntl64, getpagesize, madvise, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 086/108] linux-user: Split out gettid, readahead, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 087/108] linux-user: Split out xattr syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 089/108] linux-user: Split out clock syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 090/108] linux-user: Fix clock_nanosleep, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 088/108] linux-user: Split out getdomainname, get_thread_area, set_thread_area, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 091/108] linux-user: Split out set_tid_address, tgkill, tkill, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 092/108] linux-user: Split out futex, utimensat, Richard Henderson, 2018/06/09