This reverts commit df7c3f7d3a3ddab31ca8cfa9b86a8729ec43fd2e. There's no guarantee that obj->btf is non-NULL when passing it to btf__fd(), and this function doesn't perform any check before dereferencing its argument. As a consequence, this commit caused segmentation faults in bpftool (for example) when trying to load programs that come without BTF info. Signed-off-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> --- tools/lib/bpf/libbpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index efab29b8935b..0f9a4d232468 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -7343,7 +7343,7 @@ static int bpf_object_load_prog(struct bpf_object *obj, struct bpf_program *prog load_attr.prog_ifindex = prog->prog_ifindex; /* specify func_info/line_info only if kernel supports them */ - btf_fd = btf__fd(obj->btf); + btf_fd = bpf_object__btf_fd(obj); if (btf_fd >= 0 && kernel_supports(obj, FEAT_BTF_FUNC)) { load_attr.prog_btf_fd = btf_fd; load_attr.func_info = prog->func_info; -- 2.34.1