Commit 2055a99d authored by Jia-Ju Bai's avatar Jia-Ju Bai Committed by David S. Miller
Browse files

net: bonding: fix error return code of bond_neigh_init()



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: 9e99bfef ("bonding: fix bond_neigh_init()")
Reported-by: default avatarTOTE Robot <oslab@tsinghua.edu.cn>
Signed-off-by: default avatarJia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 29d98f54
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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,