asan: vms-alpha: stack buffer overflow

Alan Modra amodra@gmail.com
Mon Nov 9 12:59:59 GMT 2020


32 bits is too big for the field.

	* vms-alpha.c (alpha_vms_write_exec): Write 16 bits to eihd.alias.

diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 5bf32d6780..471e0215e6 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -3252,7 +3252,7 @@ alpha_vms_write_exec (bfd *abfd)
   bfd_putl32 (16, eihd.virt_mem_block_size);
   bfd_putl32 (0, eihd.ext_fixup_off);
   bfd_putl32 (0, eihd.noopt_psect_off);
-  bfd_putl32 (-1, eihd.alias);
+  bfd_putl16 (-1, eihd.alias);
 
   /* Alloc EIHA.  */
   eiha = (struct vms_eiha *)((char *) &eihd + PRIV (file_pos));

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list