]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dhcp-server: port to recvmsg_safe()
authorLennart Poettering <lennart@poettering.net>
Thu, 23 Apr 2020 18:00:07 +0000 (20:00 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 24 Apr 2020 05:43:42 +0000 (07:43 +0200)
Split out of #15457, let's see if this is the culprit of the CI failure.

src/libsystemd-network/sd-dhcp-server.c

index 57eed765eea364062a0a35c009776320d2a62766..7fa0dc2812a60faceb10a67711a182e32d223aad 100644 (file)
@@ -995,14 +995,12 @@ static int server_receive_message(sd_event_source *s, int fd,
 
         iov = IOVEC_MAKE(message, buflen);
 
-        len = recvmsg(fd, &msg, 0);
-        if (len < 0) {
-                if (IN_SET(errno, EAGAIN, EINTR))
-                        return 0;
-
-                return -errno;
-        }
-        if ((size_t)len < sizeof(DHCPMessage))
+        len = recvmsg_safe(fd, &msg, 0);
+        if (IN_SET(len, -EAGAIN, -EINTR))
+                return 0;
+        if (len < 0)
+                return len;
+        if ((size_t) len < sizeof(DHCPMessage))
                 return 0;
 
         CMSG_FOREACH(cmsg, &msg) {