[binutils-gdb] elf: Return false if output_section is NULL
H.J. Lu
hjl@sourceware.org
Fri Jun 13 07:20:38 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=412164f0a99a827a04394c7731c25084e794bcf4
commit 412164f0a99a827a04394c7731c25084e794bcf4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Jun 13 13:33:32 2025 +0800
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 <hjl.tools@gmail.com>
Diff:
---
bfd/elf.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
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];
}
More information about the Binutils-cvs
mailing list