nfc: Do not send datagram if socket state isn't LLCP_BOUND

[ Upstream commit 6ec0d7527c4287369b52df3bcefd21a0c4fb2b7c ]

As we know we cannot send the datagram (state can be set to LLCP_CLOSED
by nfc_llcp_socket_release()), there is no need to proceed further.

Thus, bail out early from llcp_sock_sendmsg().

Signed-off-by: Siddh Raman Pant <code@siddh.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Suman Ghosh <sumang@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Siddh Raman Pant 2023-12-19 23:19:44 +05:30 committed by Greg Kroah-Hartman
parent 79aa992c80
commit e79e7c3aa5
1 changed files with 5 additions and 0 deletions

View File

@ -796,6 +796,11 @@ static int llcp_sock_sendmsg(struct socket *sock, struct msghdr *msg,
}
if (sk->sk_type == SOCK_DGRAM) {
if (sk->sk_state != LLCP_BOUND) {
release_sock(sk);
return -ENOTCONN;
}
DECLARE_SOCKADDR(struct sockaddr_nfc_llcp *, addr,
msg->msg_name);