]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
vms-alpha: sections array index sanity checks
authorAlan Modra <amodra@gmail.com>
Sun, 7 Sep 2025 23:10:03 +0000 (08:40 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 8 Sep 2025 12:47:47 +0000 (22:17 +0930)
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.

bfd/vms-alpha.c

index f8eaf6f35591ec7f002197f5dd9ba886f07bf21c..36cdac68994f72c19f460b4f08cf6426f3a3ad60 100644 (file)
@@ -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