Sashiko found leak in the load_module_btfs error path [1], which happens when libbpf_ensure_mem fails, then the btf object is leaked. Adding missing btf__free object and making sure each iteration starts with NULL-ed btf pointer. [1] https://sashiko.dev/#/patchset/20260324081846.2334094-1-jolsa%40kernel.org Signed-off-by: Jiri Olsa --- tools/lib/bpf/libbpf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 0be7017800fe..b60ac8094a9e 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -5752,7 +5752,6 @@ static int load_module_btfs(struct bpf_object *obj) { struct bpf_btf_info info; struct module_btf *mod_btf; - struct btf *btf; char name[64]; __u32 id = 0, len; int err, fd; @@ -5771,6 +5770,8 @@ static int load_module_btfs(struct bpf_object *obj) return 0; while (true) { + struct btf *btf = NULL; + err = bpf_btf_get_next_id(id, &id); if (err && errno == ENOENT) return 0; @@ -5837,6 +5838,7 @@ static int load_module_btfs(struct bpf_object *obj) continue; err_out: + btf__free(btf); close(fd); return err; } -- 2.53.0