]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-netlink: return earlier when received invalid message
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 24 Nov 2022 18:33:52 +0000 (03:33 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 26 Nov 2022 02:28:27 +0000 (11:28 +0900)
src/libsystemd/sd-netlink/netlink-socket.c

index 55dc51ab502d56df12e9a7b54a56fc6d1a4e3129..5128f8fb4bec2ed41dafab8c90172b8025c771de 100644 (file)
@@ -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;