Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c318359 authored by Samuel Ortiz's avatar Samuel Ortiz Committed by John W. Linville
Browse files

NFC: Unlink LLCP child sockets from llcp_sock_release



The parent socket (the bound one) could be freed before its children, so
we should unlink the children without trying to reach it through the parent.

Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 2fbabfa4
Loading
Loading
Loading
Loading
+3 −13
Original line number Diff line number Diff line
@@ -327,20 +327,10 @@ static int llcp_sock_release(struct socket *sock)

	mutex_lock(&local->socket_lock);

	if (llcp_sock == local->sockets[llcp_sock->ssap]) {
	if (llcp_sock == local->sockets[llcp_sock->ssap])
		local->sockets[llcp_sock->ssap] = NULL;
	} else {
		struct nfc_llcp_sock *parent, *s, *n;

		parent = local->sockets[llcp_sock->ssap];

		list_for_each_entry_safe(s, n, &parent->list, list)
			if (llcp_sock == s) {
				list_del(&s->list);
				break;
			}

	}
	else
		list_del(&llcp_sock->list);

	mutex_unlock(&local->socket_lock);