Don't segfault on discarded section dynsyms
Alan Modra
amodra@gmail.com
Wed Jul 29 08:13:14 GMT 2020
More information about the Binutils mailing list
Wed Jul 29 08:13:14 GMT 2020
- Previous message (by thread): Don't assert at ldwrite.c:212
- Next message (by thread): [PATCH users/roland/tolerant-elf_object_p] Don't let a single unrecognized ELF section break target matching.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
We get lots of errors before we get to this code, but let's not
segfault.
* elflink.c (bfd_elf_final_link): Don't segfault on local dynsyms
defined in excluded sections.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index a3823e6322..5089616aee 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -12599,10 +12599,13 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
the original st_name with the dynstr_index. */
sym = e->isym;
sym.st_other &= ~ELF_ST_VISIBILITY (-1);
+ sym.st_shndx = SHN_UNDEF;
s = bfd_section_from_elf_index (e->input_bfd,
e->isym.st_shndx);
- if (s != NULL)
+ if (s != NULL
+ && s->output_section != NULL
+ && elf_section_data (s->output_section) != NULL)
{
sym.st_shndx =
elf_section_data (s->output_section)->this_idx;
--
Alan Modra
Australia Development Lab, IBM
- Previous message (by thread): Don't assert at ldwrite.c:212
- Next message (by thread): [PATCH users/roland/tolerant-elf_object_p] Don't let a single unrecognized ELF section break target matching.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list