nfc: Fix to check for kmemdup failure

In case of kmemdup failure while setting the service name the patch
returns -ENOMEM upstream for processing.

Signed-off-by: Aditya Pakki <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Aditya Pakki authored and David S. Miller committed 2019-03-19 13:48:07 -07:00
1 parent a3e23f719f
commit d7737d4257
1 file changed
+7 -2
+7 -2
View 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);