diff options
author | Björn Bidar | 2022-05-22 01:55:23 +0300 |
---|---|---|
committer | Björn Bidar | 2022-05-22 02:05:43 +0300 |
commit | f40700bca140aab1918188ccc2c2d6dcdd3b91fa (patch) | |
tree | ee659257ca8e495b51830bb6f0ecbd50a2bc9f3d /0004-Revert-linux-user-Use-safe_syscall-wrapper-for-accep.patch | |
download | aur-f40700bca140aab1918188ccc2c2d6dcdd3b91fa.tar.gz |
Added as 7.0.0-1
- Initial packaging for qemu patched for use with scratchbox2
Diffstat (limited to '0004-Revert-linux-user-Use-safe_syscall-wrapper-for-accep.patch')
-rw-r--r-- | 0004-Revert-linux-user-Use-safe_syscall-wrapper-for-accep.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/0004-Revert-linux-user-Use-safe_syscall-wrapper-for-accep.patch b/0004-Revert-linux-user-Use-safe_syscall-wrapper-for-accep.patch new file mode 100644 index 000000000000..4e51ce120aaa --- /dev/null +++ b/0004-Revert-linux-user-Use-safe_syscall-wrapper-for-accep.patch @@ -0,0 +1,62 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Frajo Haider <f_haider@gmx.at> +Date: Wed, 22 Jan 2020 10:59:47 +0200 +Subject: [PATCH] Revert "linux-user: Use safe_syscall wrapper for accept and + accept4 syscalls" + +This reverts commit ff6dc130794bcd5b2033bc50262a7720285a74c7. +--- + linux-user/syscall.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +diff --git a/linux-user/syscall.c b/linux-user/syscall.c +index af8ce5b4bd67490459dfcf12e28e3a42eb5771cd..07daa16985ad75564a4d78c0e73d4720b71473f3 100644 +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -679,8 +679,6 @@ safe_syscall2(int, flock, int, fd, int, operation) + safe_syscall4(int, rt_sigtimedwait, const sigset_t *, these, siginfo_t *, uinfo, + const struct timespec *, uts, size_t, sigsetsize) + #endif +-safe_syscall4(int, accept4, int, fd, struct sockaddr *, addr, socklen_t *, len, +- int, flags) + #if defined(TARGET_NR_nanosleep) + safe_syscall2(int, nanosleep, const struct timespec *, req, + struct timespec *, rem) +@@ -3387,6 +3385,19 @@ static abi_long do_sendrecvmmsg(int fd, abi_ulong target_msgvec, + return ret; + } + ++/* If we don't have a system accept4() then just call accept. ++ * The callsites to do_accept4() will ensure that they don't ++ * pass a non-zero flags argument in this config. ++ */ ++#ifndef CONFIG_ACCEPT4 ++static inline int accept4(int sockfd, struct sockaddr *addr, ++ socklen_t *addrlen, int flags) ++{ ++ assert(flags == 0); ++ return accept(sockfd, addr, addrlen); ++} ++#endif ++ + /* do_accept4() Must return target values and target errnos. */ + static abi_long do_accept4(int fd, abi_ulong target_addr, + abi_ulong target_addrlen_addr, int flags) +@@ -3399,7 +3410,7 @@ static abi_long do_accept4(int fd, abi_ulong target_addr, + host_flags = target_to_host_bitmask(flags, fcntl_flags_tbl); + + if (target_addr == 0) { +- return get_errno(safe_accept4(fd, NULL, NULL, host_flags)); ++ return get_errno(accept4(fd, NULL, NULL, host_flags)); + } + + /* linux returns EFAULT if addrlen pointer is invalid */ +@@ -3417,7 +3428,7 @@ static abi_long do_accept4(int fd, abi_ulong target_addr, + addr = alloca(addrlen); + + ret_addrlen = addrlen; +- ret = get_errno(safe_accept4(fd, addr, &ret_addrlen, host_flags)); ++ ret = get_errno(accept4(fd, addr, &ret_addrlen, host_flags)); + if (!is_error(ret)) { + host_to_target_sockaddr(target_addr, addr, MIN(addrlen, ret_addrlen)); + if (put_user_u32(ret_addrlen, target_addrlen_addr)) { |