From: Yu Watanabe Date: Thu, 24 Nov 2022 18:33:52 +0000 (+0900) Subject: sd-netlink: return earlier when received invalid message X-Git-Tag: v253-rc1~431^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b491454dfc5d8081ef429af1d1a01aed0b83bd25;p=thirdparty%2Fsystemd.git sd-netlink: return earlier when received invalid message --- diff --git a/src/libsystemd/sd-netlink/netlink-socket.c b/src/libsystemd/sd-netlink/netlink-socket.c index 55dc51ab502..5128f8fb4be 100644 --- a/src/libsystemd/sd-netlink/netlink-socket.c +++ b/src/libsystemd/sd-netlink/netlink-socket.c @@ -272,7 +272,12 @@ int socket_read_message(sd_netlink *nl) { return r; len = (size_t) r; - if (NLMSG_OK(nl->rbuffer, len) && nl->rbuffer->nlmsg_flags & NLM_F_MULTI) { + if (!NLMSG_OK(nl->rbuffer, len)) { + log_debug("sd-netlink: received invalid message, discarding %zu bytes of incoming message", len); + return 0; + } + + if (nl->rbuffer->nlmsg_flags & NLM_F_MULTI) { multi_part = true; for (i = 0; i < nl->rqueue_partial_size; i++) @@ -341,7 +346,7 @@ int socket_read_message(sd_netlink *nl) { } if (len > 0) - log_debug("sd-netlink: discarding %zu bytes of incoming message", len); + log_debug("sd-netlink: discarding trailing %zu bytes of incoming message", len); if (!first) return 0;