diff options
author | Andrii Nakryiko <andrii@kernel.org> | 2022-03-20 03:19:11 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2022-03-21 04:53:04 +0300 |
commit | a8fee96202e279441d0e52d83eb100bd4a6d6272 (patch) | |
tree | e019e90e56ac3ff16ecdecac794f41f3353a12c1 | |
parent | 9492450fd28736262dea9143ebb3afc2c131ace1 (diff) | |
download | linux-a8fee96202e279441d0e52d83eb100bd4a6d6272.tar.xz |
libbpf: Avoid NULL deref when initializing map BTF info
If BPF object doesn't have an BTF info, don't attempt to search for BTF
types describing BPF map key or value layout.
Fixes: 262cfb74ffda ("libbpf: Init btf_{key,value}_type_id on internal map open")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220320001911.3640917-1-andrii@kernel.org
-rw-r--r-- | tools/lib/bpf/libbpf.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 7526419e59e0..2efe9431c1ba 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -4197,6 +4197,9 @@ static int bpf_map_find_btf_info(struct bpf_object *obj, struct bpf_map *map) __u32 key_type_id = 0, value_type_id = 0; int ret; + if (!obj->btf) + return -ENOENT; + /* if it's BTF-defined map, we don't need to search for type IDs. * For struct_ops map, it does not need btf_key_type_id and * btf_value_type_id. |