2001-04-26 H.J. Lu <hjl@gnu.org>

* elf32-i386.c (elf_i386_check_relocs): Verify if r_symndx is
	valid.
This commit is contained in:
H.J. Lu 2001-04-26 19:09:20 +00:00
parent 16a0c2d4ec
commit f5f31454c5
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2001-04-26 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_check_relocs): Verify if r_symndx is
valid.
2001-04-25 Frank Ch. Eigler <fche@redhat.com>
* bfd-in.h (bfd_cache_close): Declare newly exported function.

View File

@ -501,6 +501,20 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
r_symndx = ELF32_R_SYM (rel->r_info);
if (r_symndx >= symtab_hdr->sh_size / symtab_hdr->sh_entsize)
{
if (abfd->my_archive)
(*_bfd_error_handler) (_("%s(%s): bad symbol index: %d"),
bfd_get_filename (abfd->my_archive),
bfd_get_filename (abfd),
r_symndx);
else
(*_bfd_error_handler) (_("%s: bad symbol index: %d"),
bfd_get_filename (abfd),
r_symndx);
return false;
}
if (r_symndx < symtab_hdr->sh_info)
h = NULL;
else
@ -686,7 +700,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
(*_bfd_error_handler) (_("%s: bad relocation section name `%s\'"),
bfd_get_filename (abfd),
name);
}
}
sreloc = bfd_get_section_by_name (dynobj, name);
if (sreloc == NULL)