[binutils-gdb/binutils-2_33-branch] powerpc64-ld infinite loop
Alan Modra
amodra@sourceware.org
Wed Mar 11 05:33:04 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5251ab5f608ef47b83cc39625191cad9884a4581
commit 5251ab5f608ef47b83cc39625191cad9884a4581
Author: Alan Modra <amodra@gmail.com>
Date: Wed Mar 11 14:43:16 2020 +1030
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 435edf0bf231240ccecb474b74ebb49dc8db2633)
Diff:
---
bfd/ChangeLog | 4 ++++
bfd/elf64-ppc.c | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 67342f1e984..2ce56080919 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index c093612d081..fcb5dea1264 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -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;
More information about the Binutils-cvs
mailing list