* elf.c (bfd_elf_local_sym_name): Avoid crashes with invalid
st_shndx on STT_SECTION sections.
This commit is contained in:
parent
3cd36e7c72
commit
138f35cc73
2 changed files with 9 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-12-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf.c (bfd_elf_local_sym_name): Avoid crashes with invalid
|
||||
st_shndx on STT_SECTION sections.
|
||||
|
||||
2004-12-09 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* elfcode.h (elf_slurp_reloc_table_from_section): Don't canonicalize
|
||||
|
|
|
@ -409,7 +409,10 @@ bfd_elf_local_sym_name (bfd *abfd, Elf_Internal_Sym *isym)
|
|||
{
|
||||
unsigned int iname = isym->st_name;
|
||||
unsigned int shindex = elf_tdata (abfd)->symtab_hdr.sh_link;
|
||||
if (iname == 0 && ELF_ST_TYPE (isym->st_info) == STT_SECTION)
|
||||
if (iname == 0 && ELF_ST_TYPE (isym->st_info) == STT_SECTION
|
||||
/* Check for a bogus st_shndx to avoid crashing. */
|
||||
&& isym->st_shndx < elf_numsections (abfd)
|
||||
&& !(isym->st_shndx >= SHN_LORESERVE && isym->st_shndx <= SHN_HIRESERVE))
|
||||
{
|
||||
iname = elf_elfsections (abfd)[isym->st_shndx]->sh_name;
|
||||
shindex = elf_elfheader (abfd)->e_shstrndx;
|
||||
|
|
Loading…
Reference in a new issue