.../selftests/drivers/net/napi_id_helper.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 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 | 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
On Sat, Jun 28, 2025 at 1:19 AM Malaya Kumar Rout <malayarout91@gmail.com> 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> > --- > .../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; client variable is uninitialized at this point.
On Sat, Jun 28, 2025 at 2:15 PM Eric Dumazet <edumazet@google.com> wrote: > > On Sat, Jun 28, 2025 at 1:19 AM Malaya Kumar Rout > <malayarout91@gmail.com> 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> > > --- > > .../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; > > client variable is uninitialized at this point. I sincerely appreciate your prompt review and for identifying the variable initialization issue. If you are agreeable to initializing both the server and client to -1, I will proceed to share the updated patch.
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.