[binutils-gdb] asan: unknown write in z80_elf_16_be_reloc

Alan Modra amodra@sourceware.org
Thu Apr 23 10:43:46 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8dc535c59fdbcf99e28703425e5c1c711e63a1f1

commit 8dc535c59fdbcf99e28703425e5c1c711e63a1f1
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Apr 23 15:08:37 2026 +0930

    asan: unknown write in z80_elf_16_be_reloc
    
            * elf32-z80.c (z80_elf_16_be_reloc): Sanity check reloc offset.

Diff:
---
 bfd/elf32-z80.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/bfd/elf32-z80.c b/bfd/elf32-z80.c
index 8eacfd7e464..1dc2e192adc 100644
--- a/bfd/elf32-z80.c
+++ b/bfd/elf32-z80.c
@@ -580,6 +580,10 @@ z80_elf_16_be_reloc (bfd *abfd,
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
 				  input_section, output_bfd, error_message);
 
+  if (!bfd_reloc_offset_in_range (reloc_entry->howto, abfd,
+				  input_section, octets))
+    return bfd_reloc_outofrange;
+
   /* Get symbol value.  */
   val = 0;
   if (!bfd_is_com_section (symbol->section))


More information about the Binutils-cvs mailing list