.../selftests/drivers/net/napi_id_helper.c | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-)
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
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
© 2016 - 2025 Red Hat, Inc.