When iterating over modifiers, ensure that type tags can only occur at head of the chain, and don't occur later, such that checking for them once in the start tells us there are no more type tags in later modifiers. Clang already ensures to emit such BTF, but user can craft their own BTF which violates such assumptions if relied upon in the kernel. Changelog: ---------- v2 -> v3 v2: https://lore.kernel.org/bpf/20220418224719.1604889-1-memxor@xxxxxxxxx * Address nit from Yonghong, add Acked-by v1 -> v2 v1: https://lore.kernel.org/bpf/20220406004121.282699-1-memxor@xxxxxxxxx * Fix for bug pointed out by Yonghong * Update selftests to include Yonghong's example Kumar Kartikeya Dwivedi (2): bpf: Ensure type tags precede modifiers in BTF selftests/bpf: Add tests for type tag order validation kernel/bpf/btf.c | 54 +++++++++++ tools/testing/selftests/bpf/prog_tests/btf.c | 99 ++++++++++++++++++++ 2 files changed, 153 insertions(+) -- 2.35.1