linux/tools
Martin KaFai Lau b69d4413aa bpftool: Fix cgroup command to only show cgroup bpf programs
The netkit program is not a cgroup bpf program and should not be shown
in the output of the "bpftool cgroup show" command.

However, if the netkit device happens to have ifindex 3,
the "bpftool cgroup show" command will output the netkit
bpf program as well:

> ip -d link show dev nk1
3: nk1@if2: ...
    link/ether ...
    netkit mode ...

> bpftool net show
tc:
nk1(3) netkit/peer tw_ns_nk2phy prog_id 469447

> bpftool cgroup show /sys/fs/cgroup/...
ID       AttachType      AttachFlags     Name
...      ...                             ...
469447   netkit_peer                     tw_ns_nk2phy

The reason is that the target_fd (which is the cgroup_fd here) and
the target_ifindex are in a union in the uapi/linux/bpf.h. The bpftool
iterates all values in "enum bpf_attach_type" which includes
non cgroup attach types like netkit. The cgroup_fd is usually 3 here,
so the bug is triggered when the netkit ifindex just happens
to be 3 as well.

The bpftool's cgroup.c already has a list of cgroup-only attach type
defined in "cgroup_attach_types[]". This patch fixes it by iterating
over "cgroup_attach_types[]" instead of "__MAX_BPF_ATTACH_TYPE".

Cc: Quentin Monnet <qmo@kernel.org>
Reported-by: Takshak Chahande <ctakshak@meta.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Quentin Monnet <qmo@kernel.org>
Link: https://lore.kernel.org/r/20250507203232.1420762-1-martin.lau@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2025-05-08 11:34:56 -07:00
..
accounting
arch x86/insn: Fix CTEST instruction decoding 2025-04-24 20:19:17 +02:00
bootconfig
bpf bpftool: Fix cgroup command to only show cgroup bpf programs 2025-05-08 11:34:56 -07:00
build perf tools changes for v6.15 2025-03-31 08:52:33 -07:00
certs
cgroup
counter
crypto
debugging taint: Add TAINT_FWCTL 2025-03-06 15:13:13 -04:00
firewire
firmware
gpio
hv
iio
include Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf after rc3 2025-04-21 08:04:38 -07:00
kvm/kvm_stat
laptop
leds
lib libbpf: Improve BTF dedup handling of "identical" BTF types 2025-05-05 14:51:47 -07:00
memory-model
mm
net tools: ynl-gen: make sure we validate subtype of array-nest 2025-04-16 18:09:41 -07:00
objtool Rust fixes for v6.15 2025-04-19 10:02:43 -07:00
pcmcia
perf perf tools: Remove evsel__handle_error_quirks() 2025-04-11 09:22:49 -07:00
power Turbostat 2025.05.06 2025-04-06 12:32:43 -07:00
rcu
sched_ext sched_ext: Mark SCX_OPS_HAS_CGROUP_WEIGHT for deprecation 2025-04-08 08:53:52 -10:00
scripts tools headers: Update the syscall table with the kernel sources 2025-04-10 09:28:24 -07:00
sound
spi
testing selftests/bpf: Add test for bpf_list_{front,back} 2025-05-06 10:21:06 -07:00
thermal
time
tracing tracing tooling updates for 6.15: 2025-03-27 17:03:01 -07:00
usb
verification tracing tooling updates for 6.15: 2025-03-27 17:03:01 -07:00
virtio
wmi
workqueue
writeback
Makefile tools/Makefile: Remove pci target 2025-03-08 14:35:32 +00:00