2023-04-06 06:36:39

by Harshit Mogalapalli

[permalink] [raw]
Subject: [PATCH] niu: Fix missing unwind goto in niu_alloc_channels()

Smatch reports: drivers/net/ethernet/sun/niu.c:4525
niu_alloc_channels() warn: missing unwind goto?

If niu_rbr_fill() fails, then we are directly returning 'err' without
freeing the channels.

Fix this by changing direct return to a goto 'out_err'.

Fixes: a3138df9f20e ("[NIU]: Add Sun Neptune ethernet driver.")
Signed-off-by: Harshit Mogalapalli <[email protected]>
---
This is purely based on static analysis. Only compile tested.
---
drivers/net/ethernet/sun/niu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c
index ab8b09a9ef61..7a2e76776297 100644
--- a/drivers/net/ethernet/sun/niu.c
+++ b/drivers/net/ethernet/sun/niu.c
@@ -4522,7 +4522,7 @@ static int niu_alloc_channels(struct niu *np)

err = niu_rbr_fill(np, rp, GFP_KERNEL);
if (err)
- return err;
+ goto out_err;
}

tx_rings = kcalloc(num_tx_rings, sizeof(struct tx_ring_info),
--
2.38.1


2023-04-06 14:33:03

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH] niu: Fix missing unwind goto in niu_alloc_channels()

On Wed, Apr 05, 2023 at 11:31:18PM -0700, Harshit Mogalapalli wrote:
> Smatch reports: drivers/net/ethernet/sun/niu.c:4525
> niu_alloc_channels() warn: missing unwind goto?
>
> If niu_rbr_fill() fails, then we are directly returning 'err' without
> freeing the channels.
>
> Fix this by changing direct return to a goto 'out_err'.
>
> Fixes: a3138df9f20e ("[NIU]: Add Sun Neptune ethernet driver.")
> Signed-off-by: Harshit Mogalapalli <[email protected]>
> ---
> This is purely based on static analysis. Only compile tested.

Reviewed-by: Simon Horman <[email protected]>

2023-04-07 07:26:27

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] niu: Fix missing unwind goto in niu_alloc_channels()

Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <[email protected]>:

On Wed, 5 Apr 2023 23:31:18 -0700 you wrote:
> Smatch reports: drivers/net/ethernet/sun/niu.c:4525
> niu_alloc_channels() warn: missing unwind goto?
>
> If niu_rbr_fill() fails, then we are directly returning 'err' without
> freeing the channels.
>
> Fix this by changing direct return to a goto 'out_err'.
>
> [...]

Here is the summary with links:
- niu: Fix missing unwind goto in niu_alloc_channels()
https://git.kernel.org/netdev/net/c/8ce07be70345

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html