vms-alpha: sections array index sanity checks

Message ID aL7QOFjISkLsHQE0@squeak.grove.modra.org
State New
Headers
Series vms-alpha: sections array index sanity checks |

Commit Message

Alan Modra Sept. 8, 2025, 12:46 p.m. UTC
  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.
  

Patch

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