]> git.itanic.dy.fi Git - linux-stable/commitdiff
bridge: mcast: Account for missing attributes
authorIdo Schimmel <idosch@nvidia.com>
Wed, 25 Oct 2023 12:30:09 +0000 (15:30 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Oct 2023 09:51:41 +0000 (10:51 +0100)
The 'MDBA_MDB' and 'MDBA_MDB_ENTRY' nest attributes are not accounted
for when calculating the size of MDB notifications. Add them along with
comments for existing attributes.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_mdb.c

index fb58bb1b60e83c731d75c8de39521c46bc83db40..08de94bffc129fe6a73306475331b208d109cd1a 100644 (file)
@@ -452,11 +452,18 @@ static int nlmsg_populate_mdb_fill(struct sk_buff *skb,
 
 static size_t rtnl_mdb_nlmsg_size(struct net_bridge_port_group *pg)
 {
-       size_t nlmsg_size = NLMSG_ALIGN(sizeof(struct br_port_msg)) +
-                           nla_total_size(sizeof(struct br_mdb_entry)) +
-                           nla_total_size(sizeof(u32));
        struct net_bridge_group_src *ent;
-       size_t addr_size = 0;
+       size_t nlmsg_size, addr_size = 0;
+
+       nlmsg_size = NLMSG_ALIGN(sizeof(struct br_port_msg)) +
+                    /* MDBA_MDB */
+                    nla_total_size(0) +
+                    /* MDBA_MDB_ENTRY */
+                    nla_total_size(0) +
+                    /* MDBA_MDB_ENTRY_INFO */
+                    nla_total_size(sizeof(struct br_mdb_entry)) +
+                    /* MDBA_MDB_EATTR_TIMER */
+                    nla_total_size(sizeof(u32));
 
        if (!pg)
                goto out;