aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-09-02 10:03:14 +0930
committerAlan Modra <amodra@gmail.com>2020-09-02 16:30:42 +0930
commit26009aa7639bb4103291bb79743dc4e51175f80a (patch)
tree972cc10860192a2edad3f391e4a0c030740fad34
parent2f26cc79ccd114c46d781507fbefc2487ced54b2 (diff)
downloadgdb-26009aa7639bb4103291bb79743dc4e51175f80a.zip
gdb-26009aa7639bb4103291bb79743dc4e51175f80a.tar.gz
gdb-26009aa7639bb4103291bb79743dc4e51175f80a.tar.bz2
ubsan elfnn-aarch64.c:7142 shift exponent 32 is too large
* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Correct type of constant shifted left.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elfnn-aarch64.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d45c0e8..156bb7a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2020-09-02 Alan Modra <amodra@gmail.com>
+ * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Correct type
+ of constant shifted left.
+
+2020-09-02 Alan Modra <amodra@gmail.com>
+
* elf32-pru.c (pru_elf32_do_ldi32_relocate): Use an unsigned
type for "relocation".
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 302d8dd..5b4c189 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -7139,7 +7139,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd,
Try to catch this situation here and provide a more helpful
error message to the user. */
- if (addend & ((1UL << howto->rightshift) - 1)
+ if (addend & (((bfd_vma) 1 << howto->rightshift) - 1)
/* FIXME: Are we testing all of the appropriate reloc
types here ? */
&& (real_r_type == BFD_RELOC_AARCH64_LD_LO19_PCREL