[binutils-gdb] vms-alpha: sections array index sanity checks

Alan Modra amodra@sourceware.org
Mon Sep 8 12:49:00 GMT 2025


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

commit 58b625a9c9ee7780a622d8082abf936ac9514a0c
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Sep 8 08:40:03 2025 +0930

    vms-alpha: sections array index sanity checks
    
    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:
---
 bfd/vms-alpha.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

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


More information about the Binutils-cvs mailing list