From: H.J. Lu Date: Fri, 13 Jun 2025 05:33:32 +0000 (+0800) Subject: elf: Return false if output_section is NULL X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=412164f0a99a827a04394c7731c25084e794bcf4;p=thirdparty%2Fbinutils-gdb.git elf: Return false if output_section is NULL Return false if output_section is NULL so that on input https://sourceware.org/bugzilla/attachment.cgi?id=16131 objcopy generates objcopy: /tmp/objcopy-poc(OrcError.cpp.o): invalid entry (0x22000000) in group [3] objcopy: /tmp/objcopy-poc(OrcError.cpp.o): invalid entry (0x21000000) in group [3] objcopy: /tmp/objcopy-poc(OrcError.cpp.o)(.text._ZNK12_GLOBAL__N_116OrcErrorCategory7messageB5cxx11Ei): relocation 29 has invalid symbol index 1160982879 objcopy: /tmp/stv73zYw/OrcError.cpp.o[.text._ZN4llvm3orc8orcErrorENS0_12OrcErrorCodeE]: bad value instead of objcopy: /tmp/objcopy-poc(OrcError.cpp.o): invalid entry (0x22000000) in group [3] objcopy: /tmp/objcopy-poc(OrcError.cpp.o): invalid entry (0x21000000) in group [3] objcopy: /tmp/objcopy-poc(OrcError.cpp.o)(.text._ZNK12_GLOBAL__N_116OrcErrorCategory7messageB5cxx11Ei): relocation 29 has invalid symbol index 1160982879 Segmentation fault (core dumped) PR binutils/33075 * elf.c (elf_map_symbols): Return false if output_section is NULL. Signed-off-by: H.J. Lu --- diff --git a/bfd/elf.c b/bfd/elf.c index 17492b97f74..14ce15c7254 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -4502,7 +4502,11 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals) asection *sec = sym->section; if (sec->owner != abfd) - sec = sec->output_section; + { + sec = sec->output_section; + if (sec == NULL) + return false; + } sect_syms[sec->index] = syms[idx]; }