chiark / gitweb /
rtnl: don't ignore broadcast messages
authorTom Gundersen <teg@jklm.no>
Tue, 3 Dec 2013 22:55:45 +0000 (23:55 +0100)
committerTom Gundersen <teg@jklm.no>
Wed, 4 Dec 2013 13:15:13 +0000 (14:15 +0100)
src/libsystemd-rtnl/rtnl-message.c

index b2b7feb3c86bd376bb9911c86be32ad59a4f78bd..06c7622f7c936bf9dd7c9f6077156176d308cc35 100644 (file)
@@ -615,8 +615,8 @@ int socket_read_message(sd_rtnl *nl, sd_rtnl_message **ret) {
         else if ((size_t) k < sizeof(struct nlmsghdr) ||
                         (size_t) k < m->hdr->nlmsg_len)
                 k = -EIO; /* too small (we do accept too big though) */
         else if ((size_t) k < sizeof(struct nlmsghdr) ||
                         (size_t) k < m->hdr->nlmsg_len)
                 k = -EIO; /* too small (we do accept too big though) */
-        else if (m->hdr->nlmsg_pid != nl->sockaddr.nl.nl_pid)
-                k = 0; /* not for us */
+        else if (m->hdr->nlmsg_pid && m->hdr->nlmsg_pid != nl->sockaddr.nl.nl_pid)
+                k = 0; /* not broadcast and not for us */
 
         if (k > 0)
                 switch (m->hdr->nlmsg_type) {
 
         if (k > 0)
                 switch (m->hdr->nlmsg_type) {