It should never fail, but if it does, it's better to know about this rather than end up with nonsensical type IDs.
Signed-off-by: Andrii Nakryiko <and...@kernel.org> --- tools/lib/bpf/linker.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/lib/bpf/linker.c b/tools/lib/bpf/linker.c index dc202a5d8235..978756889de6 100644 --- a/tools/lib/bpf/linker.c +++ b/tools/lib/bpf/linker.c @@ -1425,6 +1425,15 @@ static int linker_fixup_btf(struct src_obj *obj) static int remap_type_id(__u32 *type_id, void *ctx) { int *id_map = ctx; + int new_id = id_map[*type_id]; + + if (*type_id == 0) + return 0; + + if (new_id == 0) { + pr_warn("failed to find new ID mapping for original BTF type ID %u\n", *type_id); + return -EINVAL; + } *type_id = id_map[*type_id]; -- 2.30.2