iov.iov_base = packet;
iov.iov_len = buflen;
- len = recvmsg(fd, &msg, 0);
+ len = recvmsg(fd, &msg, MSG_CMSG_CLOEXEC);
if (len < 0) {
log_dhcp_client(client, "could not receive message from raw "
"socket: %m");
iov.iov_base = message;
iov.iov_len = buflen;
- len = recvmsg(fd, &msg, 0);
+ len = recvmsg(fd, &msg, MSG_CMSG_CLOEXEC);
if (len < buflen)
return 0;
else if ((size_t)len < sizeof(DHCPMessage))
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)
/* 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;
}
smsg.msg_name = &snl;
smsg.msg_namelen = sizeof(snl);
- buflen = recvmsg(udev_monitor->sock, &smsg, 0);
+ buflen = recvmsg(udev_monitor->sock, &smsg, MSG_CMSG_CLOEXEC);
if (buflen < 0) {
if (errno != EINTR)
log_debug("unable to receive message");
iov[0] = (struct iovec) { .iov_base = &family, .iov_len = sizeof(family) };
iov[1] = (struct iovec) { .iov_base = &in_addr, .iov_len = sizeof(in_addr) };
- n = recvmsg(pair[0], &mh, 0);
+ n = recvmsg(pair[0], &mh, MSG_CMSG_CLOEXEC);
if (n < 0)
return sd_bus_error_set_errno(error, -errno);
if ((size_t) n < sizeof(family))
mh.msg_control = &control;
mh.msg_controllen = sizeof(control);
- l = recvmsg(fd, &mh, 0);
+ l = recvmsg(fd, &mh, MSG_CMSG_CLOEXEC);
if (l < 0) {
if (errno == EAGAIN || errno == EINTR)
return 0;
assert(fd >= 0);
assert(_b);
- n = recvmsg(fd, &msghdr, MSG_DONTWAIT);
+ n = recvmsg(fd, &msghdr, MSG_DONTWAIT|MSG_CMSG_CLOEXEC);
if (n <= 0) {
if (n == 0) {
log_error("Short read");
return manager_connect(m);
}
- len = recvmsg(fd, &msghdr, MSG_DONTWAIT);
+ len = recvmsg(fd, &msghdr, MSG_DONTWAIT|MSG_CMSG_CLOEXEC);
if (len < 0) {
if (errno == EAGAIN)
return 0;
iov.iov_base = &uctrl_msg->ctrl_msg_wire;
iov.iov_len = sizeof(struct udev_ctrl_msg_wire);
- size = recvmsg(conn->sock, &smsg, 0);
+ size = recvmsg(conn->sock, &smsg, MSG_CMSG_CLOEXEC);
if (size < 0) {
log_error_errno(errno, "unable to receive ctrl message: %m");
goto err;