]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
nfc: Fix to check for kmemdup failure
authorAditya Pakki <pakki001@umn.edu>
Tue, 19 Mar 2019 03:19:44 +0000 (22:19 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Mar 2019 20:48:07 +0000 (13:48 -0700)
In case of kmemdup failure while setting the service name the patch
returns -ENOMEM upstream for processing.

Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/nfc/llcp_sock.c

index ae296273ce3db96cdaeafba66a7ff460d8a59794..17dcd0b5eb3287989d5a72a19194bc5674f3cb1e 100644 (file)
@@ -726,6 +726,10 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr,
        llcp_sock->service_name = kmemdup(addr->service_name,
                                          llcp_sock->service_name_len,
                                          GFP_KERNEL);
+       if (!llcp_sock->service_name) {
+               ret = -ENOMEM;
+               goto sock_llcp_release;
+       }
 
        nfc_llcp_sock_link(&local->connecting_sockets, sk);
 
@@ -745,10 +749,11 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr,
        return ret;
 
 sock_unlink:
-       nfc_llcp_put_ssap(local, llcp_sock->ssap);
-
        nfc_llcp_sock_unlink(&local->connecting_sockets, sk);
 
+sock_llcp_release:
+       nfc_llcp_put_ssap(local, llcp_sock->ssap);
+
 put_dev:
        nfc_put_device(dev);