• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

Revision2846942c7c83d007106cdcf1108ceedb50e1d4ec (tree)
Time2020-03-11 14:33:35
AuthorAlan Modra <amodra@gmai...>
CommiterAlan Modra

Log Message

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)

Change Summary

Incremental Difference

--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
1+2020-03-11 Alan Modra <amodra@gmail.com>
2+
3+ * elf64-ppc.c (ppc64_elf_inline_plt): Do increment rel in for loop.
4+
15 2020-01-15 Alan Modra <amodra@gmail.com>
26
37 PR 25384
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -7158,7 +7158,7 @@ ppc64_elf_inline_plt (struct bfd_link_info *info)
71587158 return FALSE;
71597159
71607160 relend = relstart + sec->reloc_count;
7161- for (rel = relstart; rel < relend; )
7161+ for (rel = relstart; rel < relend; rel++)
71627162 {
71637163 enum elf_ppc64_reloc_type r_type;
71647164 unsigned long r_symndx;