Commit 3521ffa2 authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Alexei Starovoitov
Browse files

libbpf: Fix huge memory leak in libbpf_find_vmlinux_btf_id()



BTF object wasn't freed.

Fixes: a6ed02ca ("libbpf: Load btf_vmlinux only once per object.")
Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Cc: KP Singh <kpsingh@google.com>
Link: https://lore.kernel.org/bpf/20200429012111.277390-9-andriin@fb.com
parent 13c90849
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -6934,6 +6934,7 @@ int libbpf_find_vmlinux_btf_id(const char *name,
			       enum bpf_attach_type attach_type)
{
	struct btf *btf;
	int err;

	btf = libbpf_find_kernel_btf();
	if (IS_ERR(btf)) {
@@ -6941,7 +6942,9 @@ int libbpf_find_vmlinux_btf_id(const char *name,
		return -EINVAL;
	}

	return __find_vmlinux_btf_id(btf, name, attach_type);
	err = __find_vmlinux_btf_id(btf, name, attach_type);
	btf__free(btf);
	return err;
}

static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)