Skip to content

Commit a06b804

Browse files
krzkdavem330
authored andcommitted
nfc: llcp: protect nfc_llcp_sock_unlink() calls
nfc_llcp_sock_link() is called in all paths (bind/connect) as a last action, still protected with lock_sock(). When cleaning up in llcp_sock_release(), call nfc_llcp_sock_unlink() in a mirrored way: earlier and still under the lock_sock(). Signed-off-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent a736491 commit a06b804

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

net/nfc/llcp_sock.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,11 @@ static int llcp_sock_release(struct socket *sock)
631631
}
632632
}
633633

634+
if (sock->type == SOCK_RAW)
635+
nfc_llcp_sock_unlink(&local->raw_sockets, sk);
636+
else
637+
nfc_llcp_sock_unlink(&local->sockets, sk);
638+
634639
if (llcp_sock->reserved_ssap < LLCP_SAP_MAX)
635640
nfc_llcp_put_ssap(llcp_sock->local, llcp_sock->ssap);
636641

@@ -643,11 +648,6 @@ static int llcp_sock_release(struct socket *sock)
643648
if (sk->sk_state == LLCP_DISCONNECTING)
644649
return err;
645650

646-
if (sock->type == SOCK_RAW)
647-
nfc_llcp_sock_unlink(&local->raw_sockets, sk);
648-
else
649-
nfc_llcp_sock_unlink(&local->sockets, sk);
650-
651651
out:
652652
sock_orphan(sk);
653653
sock_put(sk);

0 commit comments

Comments
 (0)