diff mbox series

nfc: change order inside nfc_se_io error path

Message ID 20230304164844.133931-1-pchelkin@ispras.ru (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series nfc: change order inside nfc_se_io error path | expand

Checks

Context Check Description
netdev/tree_selection success Guessing tree name failed - patch did not apply

Commit Message

Fedor Pchelkin March 4, 2023, 4:48 p.m. UTC
cb_context should be freed on error paths in nfc_se_io as stated by commit
25ff6f8a5a3b ("nfc: fix memory leak of se_io context in nfc_genl_se_io").

Make the error path in nfc_se_io unwind everything in reverse order, i.e.
free the cb_context after unlocking the device.

No functional changes intended - only adjusting to good coding practice.

Suggested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
---
 net/nfc/netlink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Krzysztof Kozlowski March 6, 2023, 3:28 p.m. UTC | #1
On 04/03/2023 17:48, Fedor Pchelkin wrote:
> cb_context should be freed on error paths in nfc_se_io as stated by commit
> 25ff6f8a5a3b ("nfc: fix memory leak of se_io context in nfc_genl_se_io").
> 
> Make the error path in nfc_se_io unwind everything in reverse order, i.e.
> free the cb_context after unlocking the device.
> 
> No functional changes intended - only adjusting to good coding practice.

I would argue that it is functional. Running code in or outside of
critical section/locks is quite functional change.

> 
> Suggested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
> ---
>  net/nfc/netlink.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c
> index 348bf561bc9f..b9264e730fd9 100644
> --- a/net/nfc/netlink.c
> +++ b/net/nfc/netlink.c
> @@ -1446,8 +1446,8 @@ static int nfc_se_io(struct nfc_dev *dev, u32 se_idx,
>  	return rc;
>  
>  error:
> -	kfree(cb_context);
>  	device_unlock(&dev->dev);
> +	kfree(cb_context);


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

>  

Best regards,
Krzysztof
Fedor Pchelkin March 6, 2023, 8:35 p.m. UTC | #2
On Mon, Mar 06, 2023 at 04:28:12PM +0100, Krzysztof Kozlowski wrote:
> On 04/03/2023 17:48, Fedor Pchelkin wrote:
> > cb_context should be freed on error paths in nfc_se_io as stated by commit
> > 25ff6f8a5a3b ("nfc: fix memory leak of se_io context in nfc_genl_se_io").
> > 
> > Make the error path in nfc_se_io unwind everything in reverse order, i.e.
> > free the cb_context after unlocking the device.
> > 
> > No functional changes intended - only adjusting to good coding practice.
> 
> I would argue that it is functional. Running code in or outside of
> critical section/locks is quite functional change.
> 

Hmm, actually, yes. I'll resend v2 with changed commit info as 'no
functional changes' statement can probably be misunderstood later.

Should this patch be backported by the way? It doesn't seem to fix any
real issue but, as you mentioned, it contains some functional changes
which may be of some importance in future.
Fedor Pchelkin March 6, 2023, 8:41 p.m. UTC | #3
On Mon, Mar 06, 2023 at 11:35:09PM +0300, Fedor Pchelkin wrote:
> On Mon, Mar 06, 2023 at 04:28:12PM +0100, Krzysztof Kozlowski wrote:
> > On 04/03/2023 17:48, Fedor Pchelkin wrote:
> > > cb_context should be freed on error paths in nfc_se_io as stated by commit
> > > 25ff6f8a5a3b ("nfc: fix memory leak of se_io context in nfc_genl_se_io").
> > > 
> > > Make the error path in nfc_se_io unwind everything in reverse order, i.e.
> > > free the cb_context after unlocking the device.
> > > 
> > > No functional changes intended - only adjusting to good coding practice.
> > 
> > I would argue that it is functional. Running code in or outside of
> > critical section/locks is quite functional change.
> > 
> 
> Hmm, actually, yes. I'll resend v2 with changed commit info as 'no
> functional changes' statement can probably be misunderstood later.
> 
> Should this patch be backported by the way? It doesn't seem to fix any
> real issue but, as you mentioned, it contains some functional changes
> which may be of some importance in future.

Sorry for the noise. Didn't see the patch was already applied. So it's
okay as it is.
Jakub Kicinski March 6, 2023, 8:58 p.m. UTC | #4
On Mon, 6 Mar 2023 23:41:50 +0300 Fedor Pchelkin wrote:
> On Mon, Mar 06, 2023 at 11:35:09PM +0300, Fedor Pchelkin wrote:
> > On Mon, Mar 06, 2023 at 04:28:12PM +0100, Krzysztof Kozlowski wrote:  
> > > I would argue that it is functional. Running code in or outside of
> > > critical section/locks is quite functional change.
> > >   
> > 
> > Hmm, actually, yes. I'll resend v2 with changed commit info as 'no
> > functional changes' statement can probably be misunderstood later.
> > 
> > Should this patch be backported by the way? It doesn't seem to fix any
> > real issue but, as you mentioned, it contains some functional changes
> > which may be of some importance in future.  
> 
> Sorry for the noise. Didn't see the patch was already applied. So it's
> okay as it is.


As luck would have it it was applied to the wrong branch (we use main,
not master now). Script malfunction perhaps. So I'll toss it, you can
send a v2 with the updated commit message, please.
diff mbox series

Patch

diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c
index 348bf561bc9f..b9264e730fd9 100644
--- a/net/nfc/netlink.c
+++ b/net/nfc/netlink.c
@@ -1446,8 +1446,8 @@  static int nfc_se_io(struct nfc_dev *dev, u32 se_idx,
 	return rc;
 
 error:
-	kfree(cb_context);
 	device_unlock(&dev->dev);
+	kfree(cb_context);
 	return rc;
 }