[PATCH] net:nfc:digital: Fix a double free in digital_tg_recv_dep_req

Subsystems: networking [general], nfc subsystem, the rest

STALE1961d

2 messages, 2 authors, 2021-04-27 · open the first message on its own page

[PATCH] net:nfc:digital: Fix a double free in digital_tg_recv_dep_req

From: Lv Yunlong <hidden>
Date: 2021-04-27 16:25:15

In digital_tg_recv_dep_req, it calls nfc_tm_data_received(..,resp).
If nfc_tm_data_received() failed, the callee will free the resp via
kfree_skb() and return error. But in the exit branch, the resp
will be freed again.

My patch sets resp to NULL if nfc_tm_data_received() failed, to
avoid the double free.

Fixes: 1c7a4c24fbfd9 ("NFC Digital: Add target NFC-DEP support")
Signed-off-by: Lv Yunlong <redacted>
---
 net/nfc/digital_dep.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/net/nfc/digital_dep.c b/net/nfc/digital_dep.c
index 5971fb6f51cc..dc21b4141b0a 100644
--- a/net/nfc/digital_dep.c
+++ b/net/nfc/digital_dep.c
@@ -1273,6 +1273,8 @@ static void digital_tg_recv_dep_req(struct nfc_digital_dev *ddev, void *arg,
 	}
 
 	rc = nfc_tm_data_received(ddev->nfc_dev, resp);
+	if (rc)
+		resp = NULL;
 
 exit:
 	kfree_skb(ddev->chaining_skb);
-- 
2.25.1

Re: [PATCH] net:nfc:digital: Fix a double free in digital_tg_recv_dep_req

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-04-27 22:40:16

Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Tue, 27 Apr 2021 09:22:58 -0700 you wrote:
In digital_tg_recv_dep_req, it calls nfc_tm_data_received(..,resp).
If nfc_tm_data_received() failed, the callee will free the resp via
kfree_skb() and return error. But in the exit branch, the resp
will be freed again.

My patch sets resp to NULL if nfc_tm_data_received() failed, to
avoid the double free.

[...]
Here is the summary with links:
  - net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
    https://git.kernel.org/netdev/net-next/c/75258586793e

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