Don't exceed reloc array bounds
* elf64-ppc.c (ppc64_elf_relocate_section): Don't access rel[1] without first checking array bounds. * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
This commit is contained in:
parent
dca9fbc845
commit
675e28092f
@ -1,3 +1,9 @@
|
||||
2018-03-21 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_relocate_section): Don't access rel[1]
|
||||
without first checking array bounds.
|
||||
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
|
||||
|
||||
2018-03-20 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/22983
|
||||
|
@ -8000,7 +8000,8 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
break;
|
||||
|
||||
case R_PPC_TLSGD:
|
||||
if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_GD) == 0)
|
||||
if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_GD) == 0
|
||||
&& rel + 1 < relend)
|
||||
{
|
||||
unsigned int insn2;
|
||||
bfd_vma offset = rel->r_offset;
|
||||
@ -8027,7 +8028,8 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
break;
|
||||
|
||||
case R_PPC_TLSLD:
|
||||
if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_LD) == 0)
|
||||
if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_LD) == 0
|
||||
&& rel + 1 < relend)
|
||||
{
|
||||
unsigned int insn2;
|
||||
|
||||
|
@ -13897,7 +13897,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
break;
|
||||
|
||||
case R_PPC64_TLSGD:
|
||||
if (tls_mask != 0 && (tls_mask & TLS_GD) == 0)
|
||||
if (tls_mask != 0 && (tls_mask & TLS_GD) == 0
|
||||
&& rel + 1 < relend)
|
||||
{
|
||||
unsigned int insn2;
|
||||
bfd_vma offset = rel->r_offset;
|
||||
@ -13931,7 +13932,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
break;
|
||||
|
||||
case R_PPC64_TLSLD:
|
||||
if (tls_mask != 0 && (tls_mask & TLS_LD) == 0)
|
||||
if (tls_mask != 0 && (tls_mask & TLS_LD) == 0
|
||||
&& rel + 1 < relend)
|
||||
{
|
||||
unsigned int insn2;
|
||||
bfd_vma offset = rel->r_offset;
|
||||
|
Loading…
x
Reference in New Issue
Block a user