From: Tom Gundersen Date: Thu, 28 Aug 2014 13:59:13 +0000 (+0200) Subject: sd-rtnl: log if kernel buffer is overrun as we currently can't handle that case X-Git-Tag: v217~718 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5968b1c304188e466759b8ba419fc10f150e5541;p=platform%2Fupstream%2Fsystemd.git sd-rtnl: log if kernel buffer is overrun as we currently can't handle that case --- diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c index 1f596ca..906a9de 100644 --- a/src/libsystemd/sd-rtnl/rtnl-message.c +++ b/src/libsystemd/sd-rtnl/rtnl-message.c @@ -1132,10 +1132,13 @@ static int socket_recv_message(int fd, struct iovec *iov, uint32_t *_group, bool assert(iov); r = recvmsg(fd, &msg, MSG_TRUNC | (peek ? MSG_PEEK : 0)); - if (r < 0) + if (r < 0) { /* no data */ + if (errno == ENOBUFS) + log_debug("rtnl: kernel receive buffer overrun"); + return (errno == EAGAIN) ? 0 : -errno; - else if (r == 0) + } else if (r == 0) /* connection was closed by the kernel */ return -ECONNRESET;