Messages in this thread | | | Subject | Re: [PATCH] net: bonding: fix error return code of bond_neigh_init() | From | Roi Dayan <> | Date | Wed, 10 Mar 2021 11:24:20 +0200 |
| |
On 2021-03-08 5:11 AM, Jia-Ju Bai wrote: > When slave is NULL or slave_ops->ndo_neigh_setup is NULL, no error > return code of bond_neigh_init() is assigned. > To fix this bug, ret is assigned with -EINVAL in these cases. > > Fixes: 9e99bfefdbce ("bonding: fix bond_neigh_init()") > Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> > Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> > --- > drivers/net/bonding/bond_main.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c > index 74cbbb22470b..456315bef3a8 100644 > --- a/drivers/net/bonding/bond_main.c > +++ b/drivers/net/bonding/bond_main.c > @@ -3978,11 +3978,15 @@ static int bond_neigh_init(struct neighbour *n) > > rcu_read_lock(); > slave = bond_first_slave_rcu(bond); > - if (!slave) > + if (!slave) { > + ret = -EINVAL; > goto out; > + } > slave_ops = slave->dev->netdev_ops; > - if (!slave_ops->ndo_neigh_setup) > + if (!slave_ops->ndo_neigh_setup) { > + ret = -EINVAL; > goto out; > + } > > /* TODO: find another way [1] to implement this. > * Passing a zeroed structure is fragile, >
Hi,
This breaks basic functionally that always worked. A slave doesn't need to exists nor to implement ndo_neigh_setup. Now trying to add a neigh entry because of that fails. This commit needs to be reverted.
Thanks, Roi
| |