linux/tools/lib/bpf
Andrii Nakryiko 401891a9de libbpf: Fix potential misaligned memory access in btf_ext__new()
Perform a memory copy before we do the sanity checks of btf_ext_hdr.
This prevents misaligned memory access if raw btf_ext data is not 4-byte
aligned ([0]).

While at it, also add missing const qualifier.

  [0] Closes: https://github.com/libbpf/libbpf/issues/391

Fixes: 2993e0515b ("tools/bpf: add support to read .BTF.ext sections")
Reported-by: Evgeny Vereshchagin <evvers@ya.ru>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211124002325.1737739-3-andrii@kernel.org
2021-11-26 00:14:06 +01:00
..
.gitignore libbpf: Make libbpf_version.h non-auto-generated 2021-09-13 15:36:47 -07:00
bpf_core_read.h libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED() 2021-10-25 20:39:41 -07:00
bpf_endian.h libbpf: Make bpf_endian co-exist with vmlinux.h 2020-07-01 09:06:12 +02:00
bpf_gen_internal.h libbpf: Unify low-level map creation APIs w/ new bpf_map_create() 2021-11-25 23:35:46 +01:00
bpf_helpers.h libbpf: Use static const fmt string in __bpf_printk 2021-09-17 14:02:05 -07:00
bpf_prog_linfo.c libbpf: Streamline error reporting for high-level APIs 2021-05-25 17:32:35 -07:00
bpf_tracing.h riscv, libbpf: Add RISC-V (RV64) support to bpf_tracing.h 2021-11-01 17:08:21 +01:00
bpf.c libbpf: Unify low-level map creation APIs w/ new bpf_map_create() 2021-11-25 23:35:46 +01:00
bpf.h libbpf: Unify low-level map creation APIs w/ new bpf_map_create() 2021-11-25 23:35:46 +01:00
btf_dump.c libbpf: Support BTF_KIND_TYPE_TAG 2021-11-11 17:41:11 -08:00
btf.c libbpf: Fix potential misaligned memory access in btf_ext__new() 2021-11-26 00:14:06 +01:00
btf.h libbpf: Fix potential misaligned memory access in btf_ext__new() 2021-11-26 00:14:06 +01:00
Build libbpf: Split CO-RE logic into relo_core.c. 2021-07-26 12:29:14 -07:00
gen_loader.c libbpf: Unify low-level map creation APIs w/ new bpf_map_create() 2021-11-25 23:35:46 +01:00
hashmap.c libbpf: Centralize poisoning and poison reallocarray() 2020-08-18 18:38:25 -07:00
hashmap.h libbpf, hashmap: Fix undefined behavior in hash_bits 2020-11-02 23:33:51 +01:00
libbpf_common.h libbpf: Unify low-level BPF_PROG_LOAD APIs into bpf_prog_load() 2021-11-07 08:34:23 -08:00
libbpf_errno.c libbpf: Streamline error reporting for high-level APIs 2021-05-25 17:32:35 -07:00
libbpf_internal.h libbpf: Unify low-level map creation APIs w/ new bpf_map_create() 2021-11-25 23:35:46 +01:00
libbpf_legacy.h libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS 2021-11-07 08:34:22 -08:00
libbpf_probes.c libbpf: Use bpf_map_create() consistently internally 2021-11-25 23:35:46 +01:00
libbpf_version.h libbpf: Make libbpf_version.h non-auto-generated 2021-09-13 15:36:47 -07:00
libbpf.c libbpf: Use bpf_map_create() consistently internally 2021-11-25 23:35:46 +01:00
libbpf.h libbpf: Change bpf_program__set_extra_flags to bpf_program__set_flags 2021-11-19 14:21:37 -08:00
libbpf.map libbpf: Unify low-level map creation APIs w/ new bpf_map_create() 2021-11-25 23:35:46 +01:00
libbpf.pc.template libbpf: Add zlib as a dependency in pkg-config template 2019-12-16 14:55:29 -08:00
linker.c libbpf: Turn btf_dedup_opts into OPTS-based struct 2021-11-11 16:54:05 -08:00
Makefile libbpf: Compile using -std=gnu89 2021-11-09 13:27:52 -08:00
netlink.c libbpf: Switch to void * casting in netlink helpers 2021-06-22 17:04:02 +02:00
nlattr.c libbpf: Switch to void * casting in netlink helpers 2021-06-22 17:04:02 +02:00
nlattr.h libbpf: Switch to void * casting in netlink helpers 2021-06-22 17:04:02 +02:00
relo_core.c libbpf: Use __BYTE_ORDER__ 2021-10-25 20:39:41 -07:00
relo_core.h libbpf: Split CO-RE logic into relo_core.c. 2021-07-26 12:29:14 -07:00
ringbuf.c libbpf: Streamline error reporting for high-level APIs 2021-05-25 17:32:35 -07:00
skel_internal.h libbpf: Use bpf_map_create() consistently internally 2021-11-25 23:35:46 +01:00
str_error.c libbpf: Poison kernel-only integer types 2020-01-10 10:38:00 -08:00
str_error.h libbpf: relicense libbpf as LGPL-2.1 OR BSD-2-Clause 2018-10-08 10:09:48 +02:00
strset.c libbpf: Fix memory leak in strset 2021-10-01 22:54:38 +02:00
strset.h libbpf: Extract internal set-of-strings datastructure APIs 2021-03-18 16:14:22 -07:00
xsk.c libbpf: Prevent deprecation warnings in xsk.c 2021-11-25 23:35:46 +01:00
xsk.h libbpf: Deprecate AF_XDP support 2021-11-01 18:12:44 -07:00