aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf-m10300.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-08-25 09:37:23 +0930
committerAlan Modra <amodra@gmail.com>2020-08-25 23:07:10 +0930
commitb8ff233b54d66c5dce5a6d1409fe57e7ea359f43 (patch)
tree14e5aa6a794b59a0b943e833b24187b9535a4b5d /bfd/elf-m10300.c
parent30b940a097d48c73013bea38a36c5f8e3c3b2358 (diff)
downloadgdb-b8ff233b54d66c5dce5a6d1409fe57e7ea359f43.zip
gdb-b8ff233b54d66c5dce5a6d1409fe57e7ea359f43.tar.gz
gdb-b8ff233b54d66c5dce5a6d1409fe57e7ea359f43.tar.bz2
PR26419, ASAN: mn10300_elf_relax_section elf-m10300.c:3943
PR 26419 * elf-m10300.c (mn10300_elf_relax_section): Don't attempt access before start of section.
Diffstat (limited to 'bfd/elf-m10300.c')
-rw-r--r--bfd/elf-m10300.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index ae8cac8..7c63ce4 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -3932,7 +3932,7 @@ mn10300_elf_relax_section (bfd *abfd,
/* See if the value will fit in 24 bits.
We allow any 16bit match here. We prune those we can't
handle below. */
- if ((long) value < 0x7fffff && (long) value > -0x800000)
+ if (value + 0x800000 < 0x1000000 && irel->r_offset >= 3)
{
unsigned char code;
@@ -4003,7 +4003,7 @@ mn10300_elf_relax_section (bfd *abfd,
/* See if the value will fit in 16 bits.
We allow any 16bit match here. We prune those we can't
handle below. */
- if ((long) value < 0x7fff && (long) value > -0x8000)
+ if (value + 0x8000 < 0x10000 && irel->r_offset >= 2)
{
unsigned char code;