* libbfd-in.h (bfd_malloc2, bfd_realloc2, bfd_zmalloc2, bfd_alloc2,
bfd_zalloc2): New prototypes. * bfd-in.h (HALF_BFD_SIZE_TYPE): Define. * libbfd.c (bfd_malloc2, bfd_realloc2, bfd_zmalloc2): New functions. * opncls.c (bfd_alloc2, bfd_zalloc2): New functions. * elf.c (bfd_elf_get_elf_syms, setup_group, assign_section_numbers, elf_map_symbols, map_sections_to_segments, assign_file_positions_for_segments, copy_private_bfd_data, swap_out_syms, _bfd_elf_slurp_version_tables): Use bfd_*alloc2 where appropriate. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * elf.c (_bfd_elf_print_private_bfd_data): Don't crash on bogus verdef or verneed section. (_bfd_elf_slurp_version_tables): Handle corrupt verdef and/or verneed sections gracefully. * elfxx-sparc.c (_bfd_sparc_elf_info_to_howto_ptr): Don't crash on bogus relocation values. * elf64-ppc.c (ppc64_elf_info_to_howto): Likewise. * elf64-s390.c (elf_s390_info_to_howto): Likewise. * elf32-s390.c (elf_s390_info_to_howto): Likewise. * elf64-x86-64.c (elf64_x86_64_info_to_howto): Likewise. * elfxx-ia64.c (lookup_howto): Likewise.
This commit is contained in:
parent
c6c60d09fd
commit
d0fb9a8d03
14 changed files with 386 additions and 73 deletions
|
@ -373,7 +373,8 @@ elf_s390_info_to_howto (abfd, cache_ptr, dst)
|
|||
arelent *cache_ptr;
|
||||
Elf_Internal_Rela *dst;
|
||||
{
|
||||
switch (ELF64_R_TYPE(dst->r_info))
|
||||
unsigned int r_type = ELF64_R_TYPE(dst->r_info);
|
||||
switch (r_type)
|
||||
{
|
||||
case R_390_GNU_VTINHERIT:
|
||||
cache_ptr->howto = &elf64_s390_vtinherit_howto;
|
||||
|
@ -384,8 +385,13 @@ elf_s390_info_to_howto (abfd, cache_ptr, dst)
|
|||
break;
|
||||
|
||||
default:
|
||||
BFD_ASSERT (ELF64_R_TYPE(dst->r_info) < (unsigned int) R_390_max);
|
||||
cache_ptr->howto = &elf_howto_table[ELF64_R_TYPE(dst->r_info)];
|
||||
if (r_type >= sizeof (elf_howto_table) / sizeof (elf_howto_table[0]))
|
||||
{
|
||||
(*_bfd_error_handler) (_("%B: invalid relocation type %d"),
|
||||
abfd, (int) r_type);
|
||||
r_type = R_390_NONE;
|
||||
}
|
||||
cache_ptr->howto = &elf_howto_table[r_type];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue