diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-04-25 00:14:58 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-04-25 00:14:58 +0200 |
commit | 323fe6a1a9204e2126df63cb81a88831d1cdeaf5 (patch) | |
tree | 940ba059ef0a8c87f267657d76f00b9234e8708b | |
parent | 5fa8945605fc0fe8df5162e0945518c061dc5ba4 (diff) | |
download | glibc-323fe6a1a9204e2126df63cb81a88831d1cdeaf5.zip glibc-323fe6a1a9204e2126df63cb81a88831d1cdeaf5.tar.gz glibc-323fe6a1a9204e2126df63cb81a88831d1cdeaf5.tar.bz2 |
hurd: Do not take any flag from the CMSG_DATA
As fixed in 0822e3552a78 ("hurd: Don't pass FD_CLOEXEC in CMSG_DATA"),
senders currently don't have any flag to pass. We shouldn't blindly take
random flags that senders could be erroneously giving us.
-rw-r--r-- | sysdeps/mach/hurd/recvmsg.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sysdeps/mach/hurd/recvmsg.c b/sysdeps/mach/hurd/recvmsg.c index e06b0fe..4254dca 100644 --- a/sysdeps/mach/hurd/recvmsg.c +++ b/sysdeps/mach/hurd/recvmsg.c @@ -201,8 +201,10 @@ __libc_recvmsg (int fd, struct msghdr *message, int flags) err = reauthenticate (ports[i], &newports[newfds]); if (err) goto cleanup; + /* We do not currently take any flag from the sender. */ fds[j] = opened_fds[newfds] = _hurd_intern_fd (newports[newfds], - fds[j] | fd_flags, + (fds[j] & 0) + | fd_flags, 0); if (fds[j] == -1) { |