From: Samuel Thibault Date: Mon, 24 Apr 2023 22:14:58 +0000 (+0200) Subject: hurd: Do not take any flag from the CMSG_DATA X-Git-Tag: glibc-2.38~339 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=323fe6a1a9204e2126df63cb81a88831d1cdeaf5;p=thirdparty%2Fglibc.git 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. --- diff --git a/sysdeps/mach/hurd/recvmsg.c b/sysdeps/mach/hurd/recvmsg.c index e06b0fe3ba3..4254dca6271 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) {