vms-alpha: sections array index sanity checks

Alan Modra amodra@gmail.com
Mon Sep 8 12:46:48 GMT 2025


Adds a couple of missing bound checks.

	* vms-alpha.c (alpha_vms_fix_sec_rel): Sanity check relocation
	section index.
	(alpha_vms_bfd_final_link): Assert that section index is sane.

diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index f8eaf6f3559..36cdac68994 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -1863,11 +1863,16 @@ alpha_vms_fix_sec_rel (bfd *abfd, struct bfd_link_info *info,
 		       unsigned int rel, bfd_vma vma)
 {
   asection *sec;
+  unsigned int sec_indx;
 
   if (PRIV (sections) == NULL)
     return 0;
 
-  sec = PRIV (sections)[rel & RELC_MASK];
+  sec_indx = rel & RELC_MASK;
+  if (sec_indx >= PRIV (section_count))
+    return 0;
+
+  sec = PRIV (sections)[sec_indx];
 
   if (info)
     {
@@ -9655,6 +9660,7 @@ alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
 	  bfd_vma tfradr = PRIV2 (startbfd, eom_data).eom_l_tfradr;
 	  asection *sec;
 
+	  BFD_ASSERT (ps_idx < PRIV2 (startbfd, section_count));
 	  sec = PRIV2 (startbfd, sections)[ps_idx];
 
 	  bfd_set_start_address

-- 
Alan Modra


More information about the Binutils mailing list