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

Daniil Tatianin posted 1 patch 2 years, 8 months ago
There is a newer version of this series
drivers/net/bonding/bond_3ad.c | 1 +
1 file changed, 1 insertion(+)
[RESEND PATCH net v1] drivers/net/bonding/bond_3ad: return when there's no aggregator
Posted by Daniil Tatianin 2 years, 8 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 net v1] drivers/net/bonding/bond_3ad: return when there's no aggregator
Posted by Jakub Kicinski 2 years, 8 months ago
On Mon, 26 Dec 2022 11:43:53 +0300 Daniil Tatianin wrote:
> Otherwise we would dereference a NULL aggregator pointer when calling
> __set_agg_ports_ready on the line below.

Fixes tag, please?
Re: [RESEND PATCH net v1] drivers/net/bonding/bond_3ad: return when there's no aggregator
Posted by Daniil Tatianin 2 years, 8 months ago
On 12/30/22 5:22 AM, Jakub Kicinski wrote:
> On Mon, 26 Dec 2022 11:43:53 +0300 Daniil Tatianin wrote:
>> Otherwise we would dereference a NULL aggregator pointer when calling
>> __set_agg_ports_ready on the line below.
> 
> Fixes tag, please?
Looks like this code was introduced with the initial git import.
Would that still be useful?
Re: [RESEND PATCH net v1] drivers/net/bonding/bond_3ad: return when there's no aggregator
Posted by Jakub Kicinski 2 years, 8 months ago
On Fri, 30 Dec 2022 11:44:02 +0300 Daniil Tatianin wrote:
> On 12/30/22 5:22 AM, Jakub Kicinski wrote:
> > On Mon, 26 Dec 2022 11:43:53 +0300 Daniil Tatianin wrote:  
> >> Otherwise we would dereference a NULL aggregator pointer when calling
> >> __set_agg_ports_ready on the line below.  
> > 
> > Fixes tag, please?  
> Looks like this code was introduced with the initial git import.
> Would that still be useful?

yessir, the point is to let backporters know how far the bug goes.
The initial import is our local equivalent of infinity, for all
practical purposes.
Re: [RESEND PATCH net v1] drivers/net/bonding/bond_3ad: return when there's no aggregator
Posted by Daniil Tatianin 2 years, 8 months ago
On 12/31/22 6:55 AM, Jakub Kicinski wrote:
> On Fri, 30 Dec 2022 11:44:02 +0300 Daniil Tatianin wrote:
>> On 12/30/22 5:22 AM, Jakub Kicinski wrote:
>>> On Mon, 26 Dec 2022 11:43:53 +0300 Daniil Tatianin wrote:
>>>> Otherwise we would dereference a NULL aggregator pointer when calling
>>>> __set_agg_ports_ready on the line below.
>>>
>>> Fixes tag, please?
>> Looks like this code was introduced with the initial git import.
>> Would that still be useful?
> 
> yessir, the point is to let backporters know how far the bug goes.
> The initial import is our local equivalent of infinity, for all
> practical purposes.
Gotcha, thanks for letting me know!