[SRU][Focal/Jammy][PATCH 1/2] nfc: llcp: simplify llcp_sock_connect() error paths
Yuxuan Luo
yuxuan.luo at canonical.com
Wed Aug 9 00:52:14 UTC 2023
From: Krzysztof Kozlowski <krzysztof.kozlowski at canonical.com>
The llcp_sock_connect() error paths were using a mixed way of central
exit (goto) and cleanup
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at canonical.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit ec10fd154d934cc4195da3cbd017a12817b41d51)
CVE-2023-3863
Signed-off-by: Yuxuan Luo <yuxuan.luo at canonical.com>
---
net/nfc/llcp_sock.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c
index bd2174699af97..1c1748b86fae7 100644
--- a/net/nfc/llcp_sock.c
+++ b/net/nfc/llcp_sock.c
@@ -712,10 +712,8 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr,
llcp_sock->local = nfc_llcp_local_get(local);
llcp_sock->ssap = nfc_llcp_get_local_ssap(local);
if (llcp_sock->ssap == LLCP_SAP_MAX) {
- nfc_llcp_local_put(llcp_sock->local);
- llcp_sock->local = NULL;
ret = -ENOMEM;
- goto put_dev;
+ goto sock_llcp_put_local;
}
llcp_sock->reserved_ssap = llcp_sock->ssap;
@@ -760,8 +758,11 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr,
sock_llcp_release:
nfc_llcp_put_ssap(local, llcp_sock->ssap);
+
+sock_llcp_put_local:
nfc_llcp_local_put(llcp_sock->local);
llcp_sock->local = NULL;
+ llcp_sock->dev = NULL;
put_dev:
nfc_put_device(dev);
--
2.34.1
More information about the kernel-team
mailing list