libbpf: Skip empty sections in bpf_object__init_global_data_maps
The GNU assembler generates an empty .bss section. This is a well established behavior in GAS that happens in all supported targets. The LLVM assembler doesn't generate an empty .bss section. bpftool chokes on the empty .bss section. Additionally in bpf_object__elf_collect the sec_desc->data is not initialized when a section is not recognized. In this case, this happens with .comment. So we must check that sec_desc->data is initialized before checking if the size is 0. Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/bpf/20220731232649.4668-1-james.hilliard1@gmail.com
This commit is contained in:
Родитель
f86d1fbbe7
Коммит
47ea7417b0
|
@ -1642,6 +1642,10 @@ static int bpf_object__init_global_data_maps(struct bpf_object *obj)
|
|||
for (sec_idx = 1; sec_idx < obj->efile.sec_cnt; sec_idx++) {
|
||||
sec_desc = &obj->efile.secs[sec_idx];
|
||||
|
||||
/* Skip recognized sections with size 0. */
|
||||
if (sec_desc->data && sec_desc->data->d_size == 0)
|
||||
continue;
|
||||
|
||||
switch (sec_desc->sec_type) {
|
||||
case SEC_DATA:
|
||||
sec_name = elf_sec_name(obj, elf_sec_by_idx(obj, sec_idx));
|
||||
|
|
Загрузка…
Ссылка в новой задаче