diff options
author | Mykyta Yatsenko <yatsenko@meta.com> | 2024-09-02 20:17:21 +0300 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2024-09-02 23:44:51 +0300 |
commit | b0222d1d9e6f8551a056b89b0bff38f515f3c9b5 (patch) | |
tree | 772e9d5a4ddff628d4417bb83994aef9988f9421 /tools/bpf/bpftool | |
parent | 5d2784e25d7a6c216c9a4cbed2026febfb0c094c (diff) | |
download | linux-b0222d1d9e6f8551a056b89b0bff38f515f3c9b5.tar.xz |
bpftool: Fix handling enum64 in btf dump sorting
Wrong function is used to access the first enum64 element. Substituting btf_enum(t)
with btf_enum64(t) for BTF_KIND_ENUM64.
Fixes: 94133cf24bb3 ("bpftool: Introduce btf c dump sorting")
Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Quentin Monnet <qmo@kernel.org>
Link: https://lore.kernel.org/bpf/20240902171721.105253-1-mykyta.yatsenko5@gmail.com
Diffstat (limited to 'tools/bpf/bpftool')
-rw-r--r-- | tools/bpf/bpftool/btf.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/bpf/bpftool/btf.c b/tools/bpf/bpftool/btf.c index 6789c7a4d5ca..3b57ba095ab6 100644 --- a/tools/bpf/bpftool/btf.c +++ b/tools/bpf/bpftool/btf.c @@ -561,9 +561,10 @@ static const char *btf_type_sort_name(const struct btf *btf, __u32 index, bool f case BTF_KIND_ENUM64: { int name_off = t->name_off; - /* Use name of the first element for anonymous enums if allowed */ - if (!from_ref && !t->name_off && btf_vlen(t)) - name_off = btf_enum(t)->name_off; + if (!from_ref && !name_off && btf_vlen(t)) + name_off = btf_kind(t) == BTF_KIND_ENUM64 ? + btf_enum64(t)->name_off : + btf_enum(t)->name_off; return btf__name_by_offset(btf, name_off); } |