summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/nfc/llcp_sock.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c
index 8dfea26536c9..ccdd790e163a 100644
--- a/net/nfc/llcp_sock.c
+++ b/net/nfc/llcp_sock.c
@@ -107,9 +107,14 @@ static int llcp_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
107 llcp_sock->service_name = kmemdup(llcp_addr.service_name, 107 llcp_sock->service_name = kmemdup(llcp_addr.service_name,
108 llcp_sock->service_name_len, 108 llcp_sock->service_name_len,
109 GFP_KERNEL); 109 GFP_KERNEL);
110 110 if (!llcp_sock->service_name) {
111 ret = -ENOMEM;
112 goto put_dev;
113 }
111 llcp_sock->ssap = nfc_llcp_get_sdp_ssap(local, llcp_sock); 114 llcp_sock->ssap = nfc_llcp_get_sdp_ssap(local, llcp_sock);
112 if (llcp_sock->ssap == LLCP_SAP_MAX) { 115 if (llcp_sock->ssap == LLCP_SAP_MAX) {
116 kfree(llcp_sock->service_name);
117 llcp_sock->service_name = NULL;
113 ret = -EADDRINUSE; 118 ret = -EADDRINUSE;
114 goto put_dev; 119 goto put_dev;
115 } 120 }