Netdev List
 help / color / mirror / Atom feed
* [PATCH] nfc: llcp: put the socket reference on a refused connection
@ 2026-11-04  2:28 Wentao Liang
  2026-11-04  2:33 ` netdev-bot+sinfo
  2026-11-04  7:11 ` Krzysztof Kozlowski
  0 siblings, 2 replies; 3+ messages in thread
From: Wentao Liang @ 2026-11-04  2:28 UTC (permalink / raw)
  To: David Heidelberg, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Simon Horman
  Cc: oe-linux-nfc, netdev

nfc_llcp_recv_connect() finds the listening socket with
nfc_llcp_sock_get(), which takes a socket reference.  A socket that has
been bound but not yet put into listen state is also linked into
local->sockets with dsap set to LLCP_SAP_SDP, so the lookup can return
it.  In that case the state check fails and the function jumps to fail,
which only sends a DM; the reference taken by the lookup is never
dropped.

Put the reference before jumping to fail on that path.

Fixes: a69f32af86e3 ("NFC: Socket linked list")
Cc: stable@vger.kernel.org
Assisted-by: DeepSeek-V4.1-Flash and OpenAI Codex
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 net/nfc/llcp_core.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c
index 74bf817007cf..92fd7e29ec8a 100644
--- a/net/nfc/llcp_core.c
+++ b/net/nfc/llcp_core.c
@@ -949,10 +949,15 @@ static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
 
 	if (dsap != LLCP_SAP_SDP) {
 		sock = nfc_llcp_sock_get(local, dsap, LLCP_SAP_SDP);
-		if (sock == NULL || sock->sk.sk_state != LLCP_LISTEN) {
+		if (sock == NULL) {
 			reason = LLCP_DM_NOBOUND;
 			goto fail;
 		}
+		if (sock->sk.sk_state != LLCP_LISTEN) {
+			reason = LLCP_DM_NOBOUND;
+			sock_put(&sock->sk);
+			goto fail;
+		}
 	} else {
 		const u8 *sn;
 		size_t sn_len;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-11-04  7:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-04  2:28 [PATCH] nfc: llcp: put the socket reference on a refused connection Wentao Liang
2026-11-04  2:33 ` netdev-bot+sinfo
2026-11-04  7:11 ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox