nfc: Do not send datagram if socket state isn't LLCP_BOUND
authorSiddh Raman Pant <code@siddh.me>
Tue, 19 Dec 2023 17:49:44 +0000 (23:19 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Dec 2023 07:29:04 +0000 (07:29 +0000)
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>
net/nfc/llcp_sock.c

index 645677f..819157b 100644 (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);