On 4/7/2025 6:01 PM, Malaya Kumar Rout wrote: > Static Analyis for bench_htab_mem.c with cppcheck:error > tools/testing/selftests/bpf/benchs/bench_htab_mem.c:284:3: > error: Resource leak: fd [resourceLeak] > tools/testing/selftests/bpf/prog_tests/sk_assign.c:41:3: > error: Resource leak: tc [resourceLeak] > > fix the issue by closing the file descriptor (fd & tc) when > read & fgets operation fails. > > Signed-off-by: Malaya Kumar Rout <malayarout91@xxxxxxxxx> Acked-by: Hou Tao <houtao1@xxxxxxxxxx> It will be better to resend the patch and change the subject prefix to "[PATCH RESEND bpf-next v2]" instead of "[PATCH v2]". > --- > tools/testing/selftests/bpf/benchs/bench_htab_mem.c | 3 +-- > tools/testing/selftests/bpf/prog_tests/sk_assign.c | 4 +++- > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/tools/testing/selftests/bpf/benchs/bench_htab_mem.c b/tools/testing/selftests/bpf/benchs/bench_htab_mem.c > index 926ee822143e..297e32390cd1 100644 > --- a/tools/testing/selftests/bpf/benchs/bench_htab_mem.c > +++ b/tools/testing/selftests/bpf/benchs/bench_htab_mem.c > @@ -279,6 +279,7 @@ static void htab_mem_read_mem_cgrp_file(const char *name, unsigned long *value) > } > > got = read(fd, buf, sizeof(buf) - 1); > + close(fd); > if (got <= 0) { > *value = 0; > return; > @@ -286,8 +287,6 @@ static void htab_mem_read_mem_cgrp_file(const char *name, unsigned long *value) > buf[got] = 0; > > *value = strtoull(buf, NULL, 0); > - > - close(fd); > } > > static void htab_mem_measure(struct bench_res *res) > diff --git a/tools/testing/selftests/bpf/prog_tests/sk_assign.c b/tools/testing/selftests/bpf/prog_tests/sk_assign.c > index 0b9bd1d6f7cc..10a0ab954b8a 100644 > --- a/tools/testing/selftests/bpf/prog_tests/sk_assign.c > +++ b/tools/testing/selftests/bpf/prog_tests/sk_assign.c > @@ -37,8 +37,10 @@ configure_stack(void) > tc = popen("tc -V", "r"); > if (CHECK_FAIL(!tc)) > return false; > - if (CHECK_FAIL(!fgets(tc_version, sizeof(tc_version), tc))) > + if (CHECK_FAIL(!fgets(tc_version, sizeof(tc_version), tc))) { > + pclose(tc); > return false; > + } > if (strstr(tc_version, ", libbpf ")) > prog = "test_sk_assign_libbpf.bpf.o"; > else