From: Lennart Poettering Date: Thu, 23 Apr 2020 18:00:07 +0000 (+0200) Subject: dhcp-server: port to recvmsg_safe() X-Git-Tag: v246-rc1~498 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2efa5bc6fac6ab935941757993ca187de8d503fc;p=thirdparty%2Fsystemd.git dhcp-server: port to recvmsg_safe() Split out of #15457, let's see if this is the culprit of the CI failure. --- diff --git a/src/libsystemd-network/sd-dhcp-server.c b/src/libsystemd-network/sd-dhcp-server.c index 57eed765eea..7fa0dc2812a 100644 --- a/src/libsystemd-network/sd-dhcp-server.c +++ b/src/libsystemd-network/sd-dhcp-server.c @@ -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) {