libbpf: Fix potential misaligned memory access in btf_ext__new()
authorAndrii Nakryiko <andrii@kernel.org>
Wed, 24 Nov 2021 00:23:14 +0000 (16:23 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 25 Nov 2021 23:14:06 +0000 (00:14 +0100)
commit401891a9debaf0a684502f2aaecf53448cee9414
tree0aa7859715d0c72758e24fe0d0665f5adad02528
parent1144ab9bdf3430e1b5b3f22741e5283841951add
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: 2993e0515bb4 ("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
tools/lib/bpf/btf.c
tools/lib/bpf/btf.h