From: Alan Modra Date: Fri, 30 Jul 2021 03:22:19 +0000 (+0930) Subject: IMAGE_SCN_LNK_NRELOC_OVFL X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6329d1e13eabb4463d3a459ffe4fd0f028ca37df;p=binutils-gdb.git IMAGE_SCN_LNK_NRELOC_OVFL From microsoft docs: It is an error if IMAGE_SCN_LNK_NRELOC_OVFL is set and there are fewer than 0xffff relocations in the section. * coffcode.h (coff_set_alignment_hook): Sanity check overflow reloc count. --- diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 9b8798c8631..d2076effb41 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -1951,6 +1951,12 @@ coff_set_alignment_hook (bfd * abfd ATTRIBUTE_UNUSED, coff_swap_reloc_in (abfd, &dst, &n); if (bfd_seek (abfd, oldpos, 0) != 0) return; + if (n.r_vaddr < 0xffff) + { + _bfd_error_handler (_("%pB: overflow reloc count too small"), abfd); + bfd_set_error (bfd_error_bad_value); + return; + } section->reloc_count = hdr->s_nreloc = n.r_vaddr - 1; section->rel_filepos += relsz; }