libbpf: Don't crash on object files with no symbol tables
authorToke Høiland-Jørgensen <toke@redhat.com>
Wed, 1 Sep 2021 11:48:12 +0000 (13:48 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 18:16:22 +0000 (19:16 +0100)
commit9fc04208643f8ccedf1195e41f9c26ca9621bb90
tree5bdbba1e2c35e648c96bc1df81957e00f36dd98d
parent11080de0a75cba7e00c1060d60ea484615d7a3d3
libbpf: Don't crash on object files with no symbol tables

[ Upstream commit 03e601f48b2da6fb44d0f7b86957a8f6bacfb347 ]

If libbpf encounters an ELF file that has been stripped of its symbol
table, it will crash in bpf_object__add_programs() when trying to
dereference the obj->efile.symbols pointer.

Fix this by erroring out of bpf_object__elf_collect() if it is not able
able to find the symbol table.

v2:
  - Move check into bpf_object__elf_collect() and add nice error message

Fixes: 6245947c1b3c ("libbpf: Allow gaps in BPF program sections to support overriden weak functions")
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210901114812.204720-1-toke@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/lib/bpf/libbpf.c