diff options
author | Aditya Pakki <pakki001@umn.edu> | 2019-03-18 23:19:44 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-03-19 16:48:07 -0400 |
commit | d7737d4257459ca8921ff911c88937be1a11ea9d (patch) | |
tree | 5f62be7d6a6c5bcd8da3a405825e6bab6159c1ee /net/nfc | |
parent | a3e23f719f5c4a38ffb3d30c8d7632a4ed8ccd9e (diff) |
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 <pakki001@umn.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/llcp_sock.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c index ae296273ce3d..17dcd0b5eb32 100644 --- a/net/nfc/llcp_sock.c +++ b/net/nfc/llcp_sock.c | |||
@@ -726,6 +726,10 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr, | |||
726 | llcp_sock->service_name = kmemdup(addr->service_name, | 726 | llcp_sock->service_name = kmemdup(addr->service_name, |
727 | llcp_sock->service_name_len, | 727 | llcp_sock->service_name_len, |
728 | GFP_KERNEL); | 728 | GFP_KERNEL); |
729 | if (!llcp_sock->service_name) { | ||
730 | ret = -ENOMEM; | ||
731 | goto sock_llcp_release; | ||
732 | } | ||
729 | 733 | ||
730 | nfc_llcp_sock_link(&local->connecting_sockets, sk); | 734 | nfc_llcp_sock_link(&local->connecting_sockets, sk); |
731 | 735 | ||
@@ -745,10 +749,11 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr, | |||
745 | return ret; | 749 | return ret; |
746 | 750 | ||
747 | sock_unlink: | 751 | sock_unlink: |
748 | nfc_llcp_put_ssap(local, llcp_sock->ssap); | ||
749 | |||
750 | nfc_llcp_sock_unlink(&local->connecting_sockets, sk); | 752 | nfc_llcp_sock_unlink(&local->connecting_sockets, sk); |
751 | 753 | ||
754 | sock_llcp_release: | ||
755 | nfc_llcp_put_ssap(local, llcp_sock->ssap); | ||
756 | |||
752 | put_dev: | 757 | put_dev: |
753 | nfc_put_device(dev); | 758 | nfc_put_device(dev); |
754 | 759 | ||