aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2021-02-05 17:24:23 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2021-02-06 23:21:27 +0000
commitf6e8256a965d5b7a7d43034ea31b2430a3b51066 (patch)
tree9fb0adb36bb85e0ca3d7d679303a4150253a9d8c
parent8af54bdfcaecf922f936a14d1d9efcf84076029f (diff)
downloadsrc-f6e8256a965d5b7a7d43034ea31b2430a3b51066.tar.gz
src-f6e8256a965d5b7a7d43034ea31b2430a3b51066.zip
linux: fix handling of flags for 32 bit send(2) syscall
Previously the flags were passed as-is, which could resulted in spurious EAGAIN returned for non-blocking sockets, which broke some Steam games. PR: 248065 Reported By: Alex S <iwtcex@gmail.com> Tested By: Alex S <iwtcex@gmail.com> Reviewed By: emaste MFC After: 3 days Sponsored By: The FreeBSD Foundation
-rw-r--r--sys/compat/linux/linux_socket.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c
index 5bfcdbb8fd21..c723af9dfba0 100644
--- a/sys/compat/linux/linux_socket.c
+++ b/sys/compat/linux/linux_socket.c
@@ -1178,7 +1178,7 @@ linux_send(struct thread *td, struct linux_send_args *args)
bsd_args.s = args->s;
bsd_args.buf = (caddr_t)PTRIN(args->msg);
bsd_args.len = args->len;
- bsd_args.flags = args->flags;
+ bsd_args.flags = linux_to_bsd_msg_flags(args->flags);
bsd_args.to = NULL;
bsd_args.tolen = 0;
error = sys_sendto(td, &bsd_args);