chiark / gitweb /
sd-rtnl: message - don't put NULL message on rqueue
[elogind.git] / src / libsystemd / sd-rtnl / rtnl-message.c
index 47dcd4a7828bde54e55b72e85082b52c8466744d..ffc19f1bb66ec533856a88e86a54936de9fba3d2 100644 (file)
@@ -1194,12 +1194,17 @@ int socket_read_message(sd_rtnl *rtnl) {
                         break;
         }
 
-        r = rtnl_rqueue_make_room(rtnl);
-        if (r < 0)
-                return r;
+        if (first) {
+                r = rtnl_rqueue_make_room(rtnl);
+                if (r < 0)
+                        return r;
+
+                rtnl->rqueue[rtnl->rqueue_size ++] = first;
+                first = NULL;
+        }
 
-        rtnl->rqueue[rtnl->rqueue_size ++] = first;
-        first = NULL;
+        if (len)
+                log_debug("sd-rtnl: discarding %zu bytes of incoming message", len);
 
         return ret;
 }