[PATCH net 0/2] fix two possible memory leak problems in NFC digital module

STALE1783d LANDED

Landed in mainline as cbcc5072c228 on 2021-10-14.

6 messages, 3 authors, 2021-10-14 · open the first message on its own page

[PATCH net 0/2] fix two possible memory leak problems in NFC digital module

From: Ziyang Xuan <hidden>
Date: 2021-10-13 07:50:57

Fix two possible memory leak problems in NFC digital module.

Ziyang Xuan (2):
  NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
  NFC: digital: fix possible memory leak in digital_in_send_sdd_req()

 net/nfc/digital_core.c       | 9 +++++++--
 net/nfc/digital_technology.c | 8 ++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

-- 
2.25.1

[PATCH net 1/2] NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()

From: Ziyang Xuan <hidden>
Date: 2021-10-13 07:51:18

'params' is allocated in digital_tg_listen_mdaa(), but not free when
digital_send_cmd() failed, which will cause memory leak. Fix it by
freeing 'params' if digital_send_cmd() return failed.

Fixes: 1c7a4c24fbfd ("NFC Digital: Add target NFC-DEP support")
Signed-off-by: Ziyang Xuan <redacted>
---
 net/nfc/digital_core.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/net/nfc/digital_core.c b/net/nfc/digital_core.c
index fefc03674f4f..d63d2e5dc60c 100644
--- a/net/nfc/digital_core.c
+++ b/net/nfc/digital_core.c
@@ -277,6 +277,7 @@ int digital_tg_configure_hw(struct nfc_digital_dev *ddev, int type, int param)
 static int digital_tg_listen_mdaa(struct nfc_digital_dev *ddev, u8 rf_tech)
 {
 	struct digital_tg_mdaa_params *params;
+	int rc;
 
 	params = kzalloc(sizeof(*params), GFP_KERNEL);
 	if (!params)
@@ -291,8 +292,12 @@ static int digital_tg_listen_mdaa(struct nfc_digital_dev *ddev, u8 rf_tech)
 	get_random_bytes(params->nfcid2 + 2, NFC_NFCID2_MAXSIZE - 2);
 	params->sc = DIGITAL_SENSF_FELICA_SC;
 
-	return digital_send_cmd(ddev, DIGITAL_CMD_TG_LISTEN_MDAA, NULL, params,
-				500, digital_tg_recv_atr_req, NULL);
+	rc = digital_send_cmd(ddev, DIGITAL_CMD_TG_LISTEN_MDAA, NULL, params,
+			      500, digital_tg_recv_atr_req, NULL);
+	if (rc)
+		kfree(params);
+
+	return rc;
 }
 
 static int digital_tg_listen_md(struct nfc_digital_dev *ddev, u8 rf_tech)
-- 
2.25.1

[PATCH net 2/2] NFC: digital: fix possible memory leak in digital_in_send_sdd_req()

From: Ziyang Xuan <hidden>
Date: 2021-10-13 07:51:34

'skb' is allocated in digital_in_send_sdd_req(), but not free when
digital_in_send_cmd() failed, which will cause memory leak. Fix it
by freeing 'skb' if digital_in_send_cmd() return failed.

Fixes: 2c66daecc409 ("NFC Digital: Add NFC-A technology support")
Signed-off-by: Ziyang Xuan <redacted>
---
 net/nfc/digital_technology.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/net/nfc/digital_technology.c b/net/nfc/digital_technology.c
index 84d2345c75a3..3adf4589852a 100644
--- a/net/nfc/digital_technology.c
+++ b/net/nfc/digital_technology.c
@@ -465,8 +465,12 @@ static int digital_in_send_sdd_req(struct nfc_digital_dev *ddev,
 	skb_put_u8(skb, sel_cmd);
 	skb_put_u8(skb, DIGITAL_SDD_REQ_SEL_PAR);
 
-	return digital_in_send_cmd(ddev, skb, 30, digital_in_recv_sdd_res,
-				   target);
+	rc = digital_in_send_cmd(ddev, skb, 30, digital_in_recv_sdd_res,
+				 target);
+	if (rc)
+		kfree_skb(skb);
+
+	return rc;
 }
 
 static void digital_in_recv_sens_res(struct nfc_digital_dev *ddev, void *arg,
-- 
2.25.1

Re: [PATCH net 1/2] NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()

From: Krzysztof Kozlowski <hidden>
Date: 2021-10-13 09:35:12

On 13/10/2021 09:50, Ziyang Xuan wrote:
'params' is allocated in digital_tg_listen_mdaa(), but not free when
digital_send_cmd() failed, which will cause memory leak. Fix it by
freeing 'params' if digital_send_cmd() return failed.

Fixes: 1c7a4c24fbfd ("NFC Digital: Add target NFC-DEP support")
Signed-off-by: Ziyang Xuan <redacted>
---
 net/nfc/digital_core.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
Good catch. Leak is only theoretical as digital_send_cmd() will fail
only on memory allocation failure but your fix makes code correct.


Reviewed-by: Krzysztof Kozlowski <redacted>


Best regards,
Krzysztof

Re: [PATCH net 2/2] NFC: digital: fix possible memory leak in digital_in_send_sdd_req()

From: Krzysztof Kozlowski <hidden>
Date: 2021-10-13 09:36:31

On 13/10/2021 09:50, Ziyang Xuan wrote:
'skb' is allocated in digital_in_send_sdd_req(), but not free when
digital_in_send_cmd() failed, which will cause memory leak. Fix it
by freeing 'skb' if digital_in_send_cmd() return failed.

Fixes: 2c66daecc409 ("NFC Digital: Add NFC-A technology support")
Signed-off-by: Ziyang Xuan <redacted>
---
 net/nfc/digital_technology.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Reviewed-by: Krzysztof Kozlowski <redacted>


Best regards,
Krzysztof

Re: [PATCH net 0/2] fix two possible memory leak problems in NFC digital module

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-10-14 00:50:10

Hello:

This series was applied to netdev/net.git (master)
by Jakub Kicinski [off-list ref]:

On Wed, 13 Oct 2021 15:49:53 +0800 you wrote:
Fix two possible memory leak problems in NFC digital module.

Ziyang Xuan (2):
  NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
  NFC: digital: fix possible memory leak in digital_in_send_sdd_req()

 net/nfc/digital_core.c       | 9 +++++++--
 net/nfc/digital_technology.c | 8 ++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)
Here is the summary with links:
  - [net,1/2] NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
    https://git.kernel.org/netdev/net/c/58e7dcc9ca29
  - [net,2/2] NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
    https://git.kernel.org/netdev/net/c/291c932fc369

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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help