[RESEND PATCH v1] drivers/net/bonding/bond_3ad: return when there's no aggregator

Daniil Tatianin posted 1 patch 2 years, 9 months ago
There is a newer version of this series
drivers/net/bonding/bond_3ad.c | 1 +
1 file changed, 1 insertion(+)
[RESEND PATCH v1] drivers/net/bonding/bond_3ad: return when there's no aggregator
Posted by Daniil Tatianin 2 years, 9 months ago
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.

Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
---
 drivers/net/bonding/bond_3ad.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index acb6ff0be5ff..320e5461853f 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -1520,6 +1520,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
-- 
2.25.1
Re: [RESEND PATCH v1] drivers/net/bonding/bond_3ad: return when there's no aggregator
Posted by Jakub Kicinski 2 years, 9 months ago
On Tue, 29 Nov 2022 10:26:17 +0300 Daniil Tatianin wrote:
> 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.
> 
> Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>

Okay, went thru, now let's try CCing the maintainers of bonding...