[binutils-gdb] s390: Add r_offset check to the weak undef change
Andreas Krebbel
krebbel@sourceware.org
Tue Feb 27 14:26:14 GMT 2024
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f1c4160786e08cf0ec4c89c5c0466deab0855ab8
commit f1c4160786e08cf0ec4c89c5c0466deab0855ab8
Author: Andreas Krebbel <krebbel@linux.ibm.com>
Date: Tue Feb 27 15:24:06 2024 +0100
s390: Add r_offset check to the weak undef change
Since we are accessing up to 2 bytes before the relocation target we
should better make sure there are actually 2 bytes before it.
ChangeLog:
* bfd/elf64-s390.c (elf_s390_relocate_section): Make sure
rel->r_offset is large enough.
Diff:
---
bfd/elf64-s390.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 74ac0180bf8..beaf3e90743 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -2486,7 +2486,8 @@ elf_s390_relocate_section (bfd *output_bfd,
&& !h->root.linker_def
&& (bfd_link_executable (info)
|| ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
- && r_type == R_390_PC32DBL)
+ && r_type == R_390_PC32DBL
+ && rel->r_offset >= 2)
{
void *insn_start = contents + rel->r_offset - 2;
uint16_t op = bfd_get_16 (input_bfd, insn_start) & 0xff0f;
More information about the Binutils-cvs
mailing list