]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
libbpf: BTF validation can use layout for unknown kinds
authorAlan Maguire <alan.maguire@oracle.com>
Thu, 26 Mar 2026 14:54:40 +0000 (14:54 +0000)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 26 Mar 2026 20:53:56 +0000 (13:53 -0700)
BTF parsing can use layout to navigate unknown kinds, so
btf_validate_type() should take layout information into
account to avoid failure when an unrecognized kind is met.

Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20260326145444.2076244-6-alan.maguire@oracle.com
tools/lib/bpf/btf.c

index 35b7fb85e1bb4336e4b7f6be20db91b87c870733..ceb57b46a8782a9cd58a28d9473e2e3281a4d022 100644 (file)
@@ -746,8 +746,12 @@ static int btf_validate_type(const struct btf *btf, const struct btf_type *t, __
                break;
        }
        default:
-               pr_warn("btf: type [%u]: unrecognized kind %u\n", id, kind);
-               return -EINVAL;
+               /* Kind may be represented in kind layout information. */
+               if (btf_type_size_unknown(btf, t) < 0) {
+                       pr_warn("btf: type [%u]: unrecognized kind %u\n", id, kind);
+                       return -EINVAL;
+               }
+               break;
        }
        return 0;
 }