diff options
author | Hengqi Chen <hengqi.chen@gmail.com> | 2021-11-15 04:24:36 +0300 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2021-11-15 05:38:13 +0300 |
commit | e5043894b21f7d99d3db31ad06308d6c5726caa6 (patch) | |
tree | 0ccaa10b8751a723e46994d985e39b891dbff4bc /tools/bpf/bpftool/iter.c | |
parent | c874dff452f34056315b01d7954ce613ce6c18ab (diff) | |
download | linux-e5043894b21f7d99d3db31ad06308d6c5726caa6.tar.xz |
bpftool: Use libbpf_get_error() to check error
Currently, LIBBPF_STRICT_ALL mode is enabled by default for
bpftool which means on error cases, some libbpf APIs would
return NULL pointers. This makes IS_ERR check failed to detect
such cases and result in segfault error. Use libbpf_get_error()
instead like we do in libbpf itself.
Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211115012436.3143318-1-hengqi.chen@gmail.com
Diffstat (limited to 'tools/bpf/bpftool/iter.c')
-rw-r--r-- | tools/bpf/bpftool/iter.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/bpf/bpftool/iter.c b/tools/bpf/bpftool/iter.c index 6c0de647b8ad..f88fdc820d23 100644 --- a/tools/bpf/bpftool/iter.c +++ b/tools/bpf/bpftool/iter.c @@ -46,7 +46,8 @@ static int do_pin(int argc, char **argv) } obj = bpf_object__open(objfile); - if (IS_ERR(obj)) { + err = libbpf_get_error(obj); + if (err) { p_err("can't open objfile %s", objfile); goto close_map_fd; } @@ -64,8 +65,8 @@ static int do_pin(int argc, char **argv) } link = bpf_program__attach_iter(prog, &iter_opts); - if (IS_ERR(link)) { - err = PTR_ERR(link); + err = libbpf_get_error(link); + if (err) { p_err("attach_iter failed for program %s", bpf_program__name(prog)); goto close_obj; |