[PATCH v3] selftests: net: fix resource leak in napi_id_helper.c

Malaya Kumar Rout posted 1 patch 3 months, 1 week ago
.../selftests/drivers/net/napi_id_helper.c    | 23 ++++++++++++-------
1 file changed, 15 insertions(+), 8 deletions(-)
[PATCH v3] selftests: net: fix resource leak in napi_id_helper.c
Posted by Malaya Kumar Rout 3 months, 1 week ago
Resolve minor resource leaks reported by cppcheck in napi_id_helper.c

cppcheck output before this patch:
tools/testing/selftests/drivers/net/napi_id_helper.c:37:3: error: Resource leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:46:3: error: Resource leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:51:3: error: Resource leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:59:3: error: Resource leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:67:3: error: Resource leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:76:3: error: Resource leak: server [resourceLeak]

cppcheck output after this patch:
No resource leaks found

Signed-off-by: Malaya Kumar Rout <malayarout91@gmail.com>
---
 .../selftests/drivers/net/napi_id_helper.c    | 23 ++++++++++++-------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/drivers/net/napi_id_helper.c b/tools/testing/selftests/drivers/net/napi_id_helper.c
index eecd610c2109..5581d04e180f 100644
--- a/tools/testing/selftests/drivers/net/napi_id_helper.c
+++ b/tools/testing/selftests/drivers/net/napi_id_helper.c
@@ -18,8 +18,8 @@ int main(int argc, char *argv[])
 	socklen_t optlen;
 	char buf[1024];
 	int opt = 1;
-	int server;
-	int client;
+	int server = -1;
+	int client = -1;
 	int ret;
 
 	server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
@@ -34,7 +34,7 @@ int main(int argc, char *argv[])
 
 	if (setsockopt(server, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) {
 		perror("setsockopt");
-		return 1;
+		goto failure;
 	}
 
 	address.sin_family = AF_INET;
@@ -43,12 +43,12 @@ int main(int argc, char *argv[])
 
 	if (bind(server, (struct sockaddr *)&address, sizeof(address)) < 0) {
 		perror("bind failed");
-		return 1;
+		goto failure;
 	}
 
 	if (listen(server, 1) < 0) {
 		perror("listen");
-		return 1;
+		goto failure;
 	}
 
 	ksft_ready();
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
 	client = accept(server, NULL, 0);
 	if (client < 0) {
 		perror("accept");
-		return 1;
+		goto failure;
 	}
 
 	optlen = sizeof(napi_id);
@@ -64,7 +64,7 @@ int main(int argc, char *argv[])
 			 &optlen);
 	if (ret != 0) {
 		perror("getsockopt");
-		return 1;
+		goto failure;
 	}
 
 	read(client, buf, 1024);
@@ -73,11 +73,18 @@ int main(int argc, char *argv[])
 
 	if (napi_id == 0) {
 		fprintf(stderr, "napi ID is 0\n");
-		return 1;
+		goto failure;
 	}
 
 	close(client);
 	close(server);
 
 	return 0;
+
+failure:
+	if (client >= 0)
+		close(client);
+	if (server >= 0)
+		close(server);
+	return 1;
 }
-- 
2.43.0
Re: [PATCH v3] selftests: net: fix resource leak in napi_id_helper.c
Posted by Paolo Abeni 3 months ago
On 6/30/25 8:36 PM, Malaya Kumar Rout wrote:
> Resolve minor resource leaks reported by cppcheck in napi_id_helper.c
> 
> cppcheck output before this patch:
> tools/testing/selftests/drivers/net/napi_id_helper.c:37:3: error: Resource leak: server [resourceLeak]
> tools/testing/selftests/drivers/net/napi_id_helper.c:46:3: error: Resource leak: server [resourceLeak]
> tools/testing/selftests/drivers/net/napi_id_helper.c:51:3: error: Resource leak: server [resourceLeak]
> tools/testing/selftests/drivers/net/napi_id_helper.c:59:3: error: Resource leak: server [resourceLeak]
> tools/testing/selftests/drivers/net/napi_id_helper.c:67:3: error: Resource leak: server [resourceLeak]
> tools/testing/selftests/drivers/net/napi_id_helper.c:76:3: error: Resource leak: server [resourceLeak]
> 
> cppcheck output after this patch:
> No resource leaks found
> 
> Signed-off-by: Malaya Kumar Rout <malayarout91@gmail.com>

Lacks fixes tag and a target tree ('net') in the subj prefix, but please
do not resubmit, as there is no resource leak even without this patch as
the kernel will close anyway all the open file descriptor at process exit.

/P