chiark / gitweb /
tree-wide: Always use recvmsg with MSG_CMSG_CLOEXEC
[elogind.git] / src / libsystemd / sd-rtnl / rtnl-message.c
index 276591f31b9e2d029985e6912a37b1445f3fcd6e..e7e3799286124af22b2838002dbd98af486aec86 100644 (file)
@@ -1431,7 +1431,7 @@ static int socket_recv_message(int fd, struct iovec *iov, uint32_t *_group, bool
         assert(fd >= 0);
         assert(iov);
 
-        r = recvmsg(fd, &msg, MSG_TRUNC | (peek ? MSG_PEEK : 0));
+        r = recvmsg(fd, &msg, MSG_TRUNC | MSG_CMSG_CLOEXEC | (peek ? MSG_PEEK : 0));
         if (r < 0) {
                 /* no data */
                 if (errno == ENOBUFS)
@@ -1467,7 +1467,7 @@ static int socket_recv_message(int fd, struct iovec *iov, uint32_t *_group, bool
                 /* not from the kernel, ignore */
                 if (peek) {
                         /* drop the message */
-                        r = recvmsg(fd, &msg, 0);
+                        r = recvmsg(fd, &msg, MSG_CMSG_CLOEXEC);
                         if (r < 0)
                                 return (errno == EAGAIN || errno == EINTR) ? 0 : -errno;
                 }