提交 3469796a 编写于 作者: A Andrii Nakryiko 提交者: Zheng Zengkai

libbpf: Tighten BTF type ID rewriting with error checking

mainline inclusion
from mainline-5.13-rc1
commit 83a15727
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I5EUVD
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=83a157279f2125ce1c4d6d93750440853746dff0

-------------------------------------------------

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: NAndrii Nakryiko <andrii@kernel.org>
Signed-off-by: NAlexei Starovoitov <ast@kernel.org>
Acked-by: NYonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20210423181348.1801389-11-andrii@kernel.org
(cherry picked from commit 83a15727)
Signed-off-by: NWang Yufen <wangyufen@huawei.com>
上级 ba18b6a2
...@@ -1429,6 +1429,13 @@ static int linker_fixup_btf(struct src_obj *obj) ...@@ -1429,6 +1429,13 @@ static int linker_fixup_btf(struct src_obj *obj)
static int remap_type_id(__u32 *type_id, void *ctx) static int remap_type_id(__u32 *type_id, void *ctx)
{ {
int *id_map = 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]; *type_id = id_map[*type_id];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册