forked from Imagelibrary/binutils-gdb
PR24337, segfault in _bfd_elf_rela_local_sym, again
Reverts commit 1ff31e135f, fixing the problem more generally. There
are likely other place that will segfault on a NULL section.
PR 24337
* elf.c (_bfd_elf_rela_local_sym): Revert last change.
(_bfd_elf_rel_local_sym): Likewise.
* elflink.c (elf_link_input_bfd): Use bfd_und_section for
section of symbols with unrecognized shndx.
This commit is contained in:
@@ -4446,7 +4446,7 @@ error_free_dyn:
|
||||
continue;
|
||||
|
||||
/* If we aren't prepared to handle locals within the globals
|
||||
then we'll likely segfault on a NULL section. */
|
||||
then we'll likely segfault on a NULL section. */
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
goto error_free_vers;
|
||||
|
||||
@@ -10421,8 +10421,7 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd)
|
||||
{
|
||||
/* Don't attempt to output symbols with st_shnx in the
|
||||
reserved range other than SHN_ABS and SHN_COMMON. */
|
||||
*ppsection = NULL;
|
||||
continue;
|
||||
isec = bfd_und_section_ptr;
|
||||
}
|
||||
else if (isec->sec_info_type == SEC_INFO_TYPE_MERGE
|
||||
&& ELF_ST_TYPE (isym->st_info) != STT_SECTION)
|
||||
|
||||
Reference in New Issue
Block a user