summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-04-23 19:57:53 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-04-24 07:40:32 +0200
commit84b5d3e532cf279761c7f17c954c986bc704ce68 (patch)
tree7a5f8d6f0b168763f735cd2515d62d9b3c23ca85
parenta8af7f6a5cd7059d5612c9cd0cf02ed7caa7d6a6 (diff)
downloadsystemd-84b5d3e532cf279761c7f17c954c986bc704ce68.tar.gz
dhcp-client: port to recvmsg_safe()
Split out of #15457, let's see if this is the culprit of the CI failure. (also setting green label here, since @keszybz already greenlit it in that other PR)
-rw-r--r--src/libsystemd-network/sd-dhcp-client.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
index a59ae4767e..31416c9f43 100644
--- a/src/libsystemd-network/sd-dhcp-client.c
+++ b/src/libsystemd-network/sd-dhcp-client.c
@@ -1927,14 +1927,14 @@ static int client_receive_message_raw(
iov = IOVEC_MAKE(packet, buflen);
- len = recvmsg(fd, &msg, 0);
- if (len < 0) {
- if (IN_SET(errno, EAGAIN, EINTR, ENETDOWN))
- return 0;
-
- return log_dhcp_client_errno(client, errno,
+ len = recvmsg_safe(fd, &msg, 0);
+ if (IN_SET(len, -EAGAIN, -EINTR, -ENETDOWN))
+ return 0;
+ if (len < 0)
+ return log_dhcp_client_errno(client, len,
"Could not receive message from raw socket: %m");
- } else if ((size_t)len < sizeof(DHCPPacket))
+
+ if ((size_t) len < sizeof(DHCPPacket))
return 0;
CMSG_FOREACH(cmsg, &msg)