[PATCH v2] selftests: net: fix resource leak in napi_id_helper.c
From: Malaya Kumar Rout
Date: Sat Jun 28 2025 - 04:19:47 EST
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@xxxxxxxxx>
---
.../selftests/drivers/net/napi_id_helper.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 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..47dd3291bd55 100644
--- a/tools/testing/selftests/drivers/net/napi_id_helper.c
+++ b/tools/testing/selftests/drivers/net/napi_id_helper.c
@@ -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