powerpc64-ld infinite loop

If this code dealing with possible conversion of inline plt sequences
is ever executed, ld will hang.  A binary with such sequences and of
code size larger than approximately 90% the reach of an unconditional
branch is the trigger.  Oops.

	* elf64-ppc.c (ppc64_elf_inline_plt): Do increment rel in for loop.

(cherry picked from commit 435edf0bf2)
This commit is contained in:
Alan Modra 2020-03-11 14:43:16 +10:30
parent 4dd834659f
commit 5251ab5f60
2 changed files with 5 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2020-03-11 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_inline_plt): Do increment rel in for loop.
2020-01-15 Alan Modra <amodra@gmail.com>
PR 25384

View File

@ -7469,7 +7469,7 @@ ppc64_elf_inline_plt (struct bfd_link_info *info)
return FALSE;
relend = relstart + sec->reloc_count;
for (rel = relstart; rel < relend; )
for (rel = relstart; rel < relend; rel++)
{
enum elf_ppc64_reloc_type r_type;
unsigned long r_symndx;