Re: [PATCH net] bonding: initialize err for empty target lists
Jay Vosburgh <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.network |
|---|---|
| Message-ID | <3995447.1786667491@famine> |
Ruoyu Wang <[email protected]> wrote: >Empty NLA_NESTED attributes are valid, and bonding uses them to clear >the ARP and NS target lists. When either target attribute is empty, >nla_for_each_nested() does not execute, so err retains an uninitialized >value before it is tested. The request can consequently return an >unpredictable error after clearing the targets. > >Initialize err to zero so an empty target list completes successfully. >Non-empty lists still propagate errors from __bond_opt_set() unchanged. > >This issue was found by a static analysis checker and confirmed by manual >source review. > >Fixes: 4fb0ef585eb2 ("bonding: convert arp_ip_target to use the new option API") >Signed-off-by: Ruoyu Wang <[email protected]> Acked-by: Jay Vosburgh <[email protected]> >--- > drivers/net/bonding/bond_netlink.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/net/bonding/bond_netlink.c b/drivers/net/bonding/bond_netlink.c >index 4a11572f663d31..87d92d3cce4a88 100644 >--- a/drivers/net/bonding/bond_netlink.c >+++ b/drivers/net/bonding/bond_netlink.c >@@ -220,7 +220,7 @@ static int bond_changelink(struct net_device *bond_dev, struct nlattr *tb[], > struct bonding *bond = netdev_priv(bond_dev); > struct bond_opt_value newval; > int miimon = 0; >- int err; >+ int err = 0; > > if (!data) > return 0; >-- >2.51.0 >