aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-04-14 17:26:45 +0930
committerAlan Modra <amodra@gmail.com>2021-04-14 17:37:27 +0930
commit8985b74b7d0f957eda8ec12e88665dab17f00a15 (patch)
treeb75ebb7c3835d88980b5e45a58c8d3e428ffea3e /bfd
parentc9f9a78d00d1a054c013da612949bbd6d1720ed7 (diff)
downloadfsf-binutils-gdb-8985b74b7d0f957eda8ec12e88665dab17f00a15.zip
fsf-binutils-gdb-8985b74b7d0f957eda8ec12e88665dab17f00a15.tar.gz
fsf-binutils-gdb-8985b74b7d0f957eda8ec12e88665dab17f00a15.tar.bz2
PR27631, ubsan: elf32-metag.c:1550:10
PR 27631 * elf32-metag.c (elf_metag_relocate_section): Don't use &hh->elf when hh might be NULL, test for NULL first.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-metag.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c3e5253..4d71522 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,11 @@
2021-04-14 Alan Modra <amodra@gmail.com>
+ PR 27631
+ * elf32-metag.c (elf_metag_relocate_section): Don't use &hh->elf
+ when hh might be NULL, test for NULL first.
+
+2021-04-14 Alan Modra <amodra@gmail.com>
+
PR 27630
* elf32-arm.c (elf32_arm_size_stubs): Don't use &hash->root when
hash might be NULL, cast instead.
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index 82e67ea..9847418 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -1546,8 +1546,8 @@ elf_metag_relocate_section (bfd *output_bfd,
if ((bfd_link_pic (info)
&& r_symndx != STN_UNDEF
&& (input_section->flags & SEC_ALLOC) != 0
- && (r_type != R_METAG_RELBRANCH
- || !SYMBOL_CALLS_LOCAL (info, &hh->eh)))
+ && !(r_type == R_METAG_RELBRANCH
+ && (hh == NULL || SYMBOL_CALLS_LOCAL (info, &hh->eh))))
|| (!bfd_link_pic (info)
&& hh != NULL
&& hh->eh.dynindx != -1