mirror of
https://github.com/systemd/systemd.git
synced 2025-01-10 05:18:17 +03:00
tree-wide: Always use recvmsg with MSG_CMSG_CLOEXEC
This commit is contained in:
parent
332560792c
commit
d6d810fbf8
@ -1582,7 +1582,7 @@ static int client_receive_message_raw(sd_event_source *s, int fd,
|
||||
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");
|
||||
|
@ -897,7 +897,7 @@ static int server_receive_message(sd_event_source *s, int fd,
|
||||
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))
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -600,7 +600,7 @@ retry:
|
||||
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");
|
||||
|
@ -255,7 +255,7 @@ int bus_machine_method_get_addresses(sd_bus *bus, sd_bus_message *message, void
|
||||
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))
|
||||
|
@ -892,7 +892,7 @@ int manager_recv(Manager *m, int fd, DnsProtocol protocol, DnsPacket **ret) {
|
||||
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;
|
||||
|
@ -69,7 +69,7 @@ static int read_packet(int fd, union shutdown_buffer *_b) {
|
||||
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");
|
||||
|
@ -516,7 +516,7 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
|
||||
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;
|
||||
|
@ -372,7 +372,7 @@ struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn) {
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user