IMAGE_SCN_LNK_NRELOC_OVFL

Alan Modra amodra@gmail.com
Fri Jul 30 06:10:15 GMT 2021


>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;
     }

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list