Message ID | 26758.1660194413@famine (mailing list archive) |
---|---|
State | Accepted |
Commit | 4f5d33f4f798b1c6d92b613f0087f639d9836971 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] bonding: fix reference count leak in balance-alb mode | expand |
On 11/08/2022 08:06, Jay Vosburgh wrote: > Commit d5410ac7b0ba ("net:bonding:support balance-alb interface > with vlan to bridge") introduced a reference count leak by not releasing > the reference acquired by ip_dev_find(). Remedy this by insuring the > reference is released. > > Fixes: d5410ac7b0ba ("net:bonding:support balance-alb interface with vlan to bridge") > Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> > > --- > drivers/net/bonding/bond_alb.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c > index 60cb9a0225aa..b9dbad3a8af8 100644 > --- a/drivers/net/bonding/bond_alb.c > +++ b/drivers/net/bonding/bond_alb.c > @@ -668,8 +668,11 @@ static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond) > > dev = ip_dev_find(dev_net(bond->dev), arp->ip_src); > if (dev) { > - if (netif_is_bridge_master(dev)) > + if (netif_is_bridge_master(dev)) { > + dev_put(dev); > return NULL; > + } > + dev_put(dev); > } > > if (arp->op_code == htons(ARPOP_REPLY)) { Nice catch, Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Wed, 10 Aug 2022 22:06:53 -0700 you wrote: > Commit d5410ac7b0ba ("net:bonding:support balance-alb interface > with vlan to bridge") introduced a reference count leak by not releasing > the reference acquired by ip_dev_find(). Remedy this by insuring the > reference is released. > > Fixes: d5410ac7b0ba ("net:bonding:support balance-alb interface with vlan to bridge") > Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> > > [...] Here is the summary with links: - [net] bonding: fix reference count leak in balance-alb mode https://git.kernel.org/netdev/net/c/4f5d33f4f798 You are awesome, thank you!
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c index 60cb9a0225aa..b9dbad3a8af8 100644 --- a/drivers/net/bonding/bond_alb.c +++ b/drivers/net/bonding/bond_alb.c @@ -668,8 +668,11 @@ static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond) dev = ip_dev_find(dev_net(bond->dev), arp->ip_src); if (dev) { - if (netif_is_bridge_master(dev)) + if (netif_is_bridge_master(dev)) { + dev_put(dev); return NULL; + } + dev_put(dev); } if (arp->op_code == htons(ARPOP_REPLY)) {
Commit d5410ac7b0ba ("net:bonding:support balance-alb interface with vlan to bridge") introduced a reference count leak by not releasing the reference acquired by ip_dev_find(). Remedy this by insuring the reference is released. Fixes: d5410ac7b0ba ("net:bonding:support balance-alb interface with vlan to bridge") Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> --- drivers/net/bonding/bond_alb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)