summaryrefslogtreecommitdiff
path: root/tools/bpf/bpftool/iter.c
diff options
context:
space:
mode:
authorHengqi Chen <hengqi.chen@gmail.com>2021-11-15 04:24:36 +0300
committerAndrii Nakryiko <andrii@kernel.org>2021-11-15 05:38:13 +0300
commite5043894b21f7d99d3db31ad06308d6c5726caa6 (patch)
tree0ccaa10b8751a723e46994d985e39b891dbff4bc /tools/bpf/bpftool/iter.c
parentc874dff452f34056315b01d7954ce613ce6c18ab (diff)
downloadlinux-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.c7
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;