]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drivers/net/bonding/bond_3ad: return when there's no aggregator
authorDaniil Tatianin <d-tatianin@yandex-team.ru>
Mon, 2 Jan 2023 09:53:35 +0000 (12:53 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jan 2023 10:41:58 +0000 (11:41 +0100)
[ Upstream commit 9c807965483f42df1d053b7436eedd6cf28ece6f ]

Otherwise we would dereference a NULL aggregator pointer when calling
__set_agg_ports_ready on the line below.

Found by Linux Verification Center (linuxtesting.org) with the SVACE
static analysis tool.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/bonding/bond_3ad.c

index 0d6cd2a4cc416ef7d59fd2b87616aedd7a51a351..0c4e6fcac58e6b08b77eec1ed97849ad9f87baa4 100644 (file)
@@ -1529,6 +1529,7 @@ static void ad_port_selection_logic(struct port *port, bool *update_slave_arr)
                        slave_err(bond->dev, port->slave->dev,
                                  "Port %d did not find a suitable aggregator\n",
                                  port->actor_port_number);
+                       return;
                }
        }
        /* if all aggregator's ports are READY_N == TRUE, set ready=TRUE