mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-10 03:02:30 +00:00
* elf.c (bfd_section_from_shdr): Treat invalid reloc sections as
normal sections rather than returning false.
This commit is contained in:
parent
44da2da10b
commit
185ef66d06
@ -1,3 +1,8 @@
|
||||
2005-12-27 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf.c (bfd_section_from_shdr): Treat invalid reloc sections as
|
||||
normal sections rather than returning false.
|
||||
|
||||
2005-12-27 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* coff-h8300.c (h8300_reloc16_extra_cases): Use input section
|
||||
|
13
bfd/elf.c
13
bfd/elf.c
@ -2045,15 +2045,16 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
|
||||
represent such a section, so at least for now, we don't
|
||||
try. We just present it as a normal section. We also
|
||||
can't use it as a reloc section if it points to the null
|
||||
section. */
|
||||
if (hdr->sh_link != elf_onesymtab (abfd) || hdr->sh_info == SHN_UNDEF)
|
||||
section, an invalid section, or another reloc section. */
|
||||
if (hdr->sh_link != elf_onesymtab (abfd)
|
||||
|| hdr->sh_info == SHN_UNDEF
|
||||
|| (hdr->sh_info >= SHN_LORESERVE && hdr->sh_info <= SHN_HIRESERVE)
|
||||
|| hdr->sh_info >= num_sec
|
||||
|| elf_elfsections (abfd)[hdr->sh_info]->sh_type == SHT_REL
|
||||
|| elf_elfsections (abfd)[hdr->sh_info]->sh_type == SHT_RELA)
|
||||
return _bfd_elf_make_section_from_shdr (abfd, hdr, name,
|
||||
shindex);
|
||||
|
||||
/* Prevent endless recursion on broken objects. */
|
||||
if (elf_elfsections (abfd)[hdr->sh_info]->sh_type == SHT_REL
|
||||
|| elf_elfsections (abfd)[hdr->sh_info]->sh_type == SHT_RELA)
|
||||
return FALSE;
|
||||
if (! bfd_section_from_shdr (abfd, hdr->sh_info))
|
||||
return FALSE;
|
||||
target_sect = bfd_section_from_elf_index (abfd, hdr->sh_info);
|
||||
|
Loading…
x
Reference in New Issue
Block a user