Merge remote-tracking branch 'remotes/riku/for-2.0' into staging
* remotes/riku/for-2.0: linux-user: pass correct host flags to accept4() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
888157fe96
@ -2062,9 +2062,12 @@ static abi_long do_accept4(int fd, abi_ulong target_addr,
|
|||||||
socklen_t addrlen;
|
socklen_t addrlen;
|
||||||
void *addr;
|
void *addr;
|
||||||
abi_long ret;
|
abi_long ret;
|
||||||
|
int host_flags;
|
||||||
|
|
||||||
|
host_flags = target_to_host_bitmask(flags, fcntl_flags_tbl);
|
||||||
|
|
||||||
if (target_addr == 0) {
|
if (target_addr == 0) {
|
||||||
return get_errno(accept4(fd, NULL, NULL, flags));
|
return get_errno(accept4(fd, NULL, NULL, host_flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* linux returns EINVAL if addrlen pointer is invalid */
|
/* linux returns EINVAL if addrlen pointer is invalid */
|
||||||
@ -2080,7 +2083,7 @@ static abi_long do_accept4(int fd, abi_ulong target_addr,
|
|||||||
|
|
||||||
addr = alloca(addrlen);
|
addr = alloca(addrlen);
|
||||||
|
|
||||||
ret = get_errno(accept4(fd, addr, &addrlen, flags));
|
ret = get_errno(accept4(fd, addr, &addrlen, host_flags));
|
||||||
if (!is_error(ret)) {
|
if (!is_error(ret)) {
|
||||||
host_to_target_sockaddr(target_addr, addr, addrlen);
|
host_to_target_sockaddr(target_addr, addr, addrlen);
|
||||||
if (put_user_u32(addrlen, target_addrlen_addr))
|
if (put_user_u32(addrlen, target_addrlen_addr))
|
||||||
|
Loading…
Reference in New Issue
Block a user