mach-o reloc size overflow

Alan Modra amodra@gmail.com
Thu Nov 10 10:12:34 GMT 2022


	* mach-o.c (bfd_mach_o_canonicalize_reloc): Set bfd_error on
	multiply overflow.

diff --git a/bfd/mach-o.c b/bfd/mach-o.c
index 664ff44a8e7..bacb1a6252d 100644
--- a/bfd/mach-o.c
+++ b/bfd/mach-o.c
@@ -1663,7 +1663,10 @@ bfd_mach_o_canonicalize_reloc (bfd *abfd, asection *asect,
       size_t amt;
 
       if (_bfd_mul_overflow (asect->reloc_count, sizeof (arelent), &amt))
-	return -1;
+	{
+	  bfd_set_error (bfd_error_file_too_big);
+	  return -1;
+	}
       res = bfd_malloc (amt);
       if (res == NULL)
 	return -1;

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list