diff --git a/src/libsystemd-network/icmp6-util.c b/src/libsystemd-network/icmp6-util.c index dbb1e51a0e..1a51c22a8d 100644 --- a/src/libsystemd-network/icmp6-util.c +++ b/src/libsystemd-network/icmp6-util.c @@ -167,9 +167,9 @@ int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *dst, iov = IOVEC_MAKE(buffer, size); - len = recvmsg(fd, &msg, MSG_DONTWAIT); + len = recvmsg_safe(fd, &msg, MSG_DONTWAIT); if (len < 0) - return -errno; + return (int) len; if ((size_t) len != size) return -EINVAL;