Currently, code like the following segfaults if bpf_prog_load_xattr returns an error: struct bpf_object *obj; err = bpf_prog_load_xattr(&attr, &obj, &prog_fd); bpf_object__close(obj); if (err) ... Unconditionally reset pobj to NULL at the start of the function to fix this. Signed-off-by: Lorenz Bauer <lmb@xxxxxxxxxxxxxx> --- tools/lib/bpf/libbpf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 11a65db4b93f..2ddf3212b8f7 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -3363,6 +3363,8 @@ int bpf_prog_load_xattr(const struct bpf_prog_load_attr *attr, struct bpf_map *map; int err; + *pobj = NULL; + if (!attr) return -EINVAL; if (!attr->file) -- 2.19.1