]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
selftests/bpf: Free bpf_object in test_sysctl
authorIhor Solodrai <ihor.solodrai@linux.dev>
Mon, 23 Feb 2026 19:07:32 +0000 (11:07 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 24 Feb 2026 16:19:49 +0000 (08:19 -0800)
ASAN reported a resource leak due to the bpf_object not being tracked
in test_sysctl. Add obj field to struct sysctl_test to properly clean
it up.

Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Link: https://lore.kernel.org/r/20260223190736.649171-17-ihor.solodrai@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/test_sysctl.c

index 273dd41ca09e4b11853fd4c260c024588fa3cd09..2a1ff821bc9718e325225e3cfcc10b27bb891cfa 100644 (file)
@@ -27,6 +27,7 @@ struct sysctl_test {
                OP_EPERM,
                SUCCESS,
        } result;
+       struct bpf_object *obj;
 };
 
 static struct sysctl_test tests[] = {
@@ -1471,6 +1472,7 @@ static int load_sysctl_prog_file(struct sysctl_test *test)
                return -1;
        }
 
+       test->obj = obj;
        return prog_fd;
 }
 
@@ -1573,6 +1575,7 @@ out:
        /* Detaching w/o checking return code: best effort attempt. */
        if (progfd != -1)
                bpf_prog_detach(cgfd, atype);
+       bpf_object__close(test->obj);
        close(progfd);
        printf("[%s]\n", err ? "FAIL" : "PASS");
        return err;