Commit 83a15727 authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Alexei Starovoitov
Browse files

libbpf: Tighten BTF type ID rewriting with error checking



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: default avatarAndrii Nakryiko <andrii@kernel.org>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarYonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20210423181348.1801389-11-andrii@kernel.org
parent 386b1d24
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1429,6 +1429,13 @@ 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];

	/* Error out if the type wasn't remapped. Ignore VOID which stays VOID. */
	if (new_id == 0 && *type_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];