Message ID | 20200911132447.3158141-1-idosch@idosch.org |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] bridge: mcast: Fix incomplete MDB dump | expand |
From: Ido Schimmel <idosch@idosch.org> Date: Fri, 11 Sep 2020 16:24:47 +0300 > From: Ido Schimmel <idosch@nvidia.com> > > Each MDB entry is encoded in a nested netlink attribute called > 'MDBA_MDB_ENTRY'. In turn, this attribute contains another nested > attributed called 'MDBA_MDB_ENTRY_INFO', which encodes a single port > group entry within the MDB entry. > > The cited commit added the ability to restart a dump from a specific > port group entry. However, on failure to add a port group entry to the > dump the entire MDB entry (stored in 'nest2') is removed, resulting in > missing port group entries. > > Fix this by finalizing the MDB entry with the partial list of already > encoded port group entries. > > Fixes: 5205e919c9f0 ("net: bridge: mcast: add support for src list and filter mode dumping") > Signed-off-by: Ido Schimmel <idosch@nvidia.com> > Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com> > Reviewed-by: Jiri Pirko <jiri@nvidia.com> Applied, thank you.
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 67e0976aeed2..00f1651a6aba 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -243,7 +243,7 @@ static int br_mdb_fill_info(struct sk_buff *skb, struct netlink_callback *cb, err = __mdb_fill_info(skb, mp, p); if (err) { - nla_nest_cancel(skb, nest2); + nla_nest_end(skb, nest2); goto out; } skip_pg: