From: Alan Modra Date: Sun, 7 Sep 2025 23:10:03 +0000 (+0930) Subject: vms-alpha: sections array index sanity checks X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=58b625a9c9ee7780a622d8082abf936ac9514a0c;p=thirdparty%2Fbinutils-gdb.git 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 --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