]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
selftests/bpf: Close the file descriptor to avoid resource leaks
authorMalaya Kumar Rout <malayarout91@gmail.com>
Mon, 21 Apr 2025 17:44:05 +0000 (23:14 +0530)
committerAndrii Nakryiko <andrii@kernel.org>
Tue, 22 Apr 2025 21:29:58 +0000 (14:29 -0700)
Static analysis found an issue in bench_htab_mem.c and sk_assign.c

cppcheck output before this patch:
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]

cppcheck output after this patch:
No resource leaks found

Fix the issue by closing the file descriptors fd and tc.

Signed-off-by: Malaya Kumar Rout <malayarout91@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20250421174405.26080-1-malayarout91@gmail.com
tools/testing/selftests/bpf/benchs/bench_htab_mem.c
tools/testing/selftests/bpf/prog_tests/sk_assign.c

index 926ee822143ec419951adbc721fe5103f44cbf14..297e32390cd1b56102a5de9d7bcbbe3388581867 100644 (file)
@@ -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)
index 0b9bd1d6f7cc846ee7294303b7d74a64c6091e5b..10a0ab954b8a70f2c922d3c7cce79dd051a175c4 100644 (file)
@@ -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