go32 sanity check

Message ID Y3bZt50nhFXkf2WU@squeak.grove.modra.org
State Repeat Merge
Headers
Series go32 sanity check |

Checks

Context Check Description
snail/binutils-gdb-check warning Git am fail log

Commit Message

Alan Modra Nov. 18, 2022, 1:02 a.m. UTC
  * coff-stgo32 (go32exe_check_format): Sanity check stubsize against
	filesize before malloc.
  

Patch

diff --git a/bfd/coff-stgo32.c b/bfd/coff-stgo32.c
index cb0df389375..17271753a7a 100644
--- a/bfd/coff-stgo32.c
+++ b/bfd/coff-stgo32.c
@@ -291,6 +291,10 @@  go32exe_check_format (bfd *abfd)
   if (last_page_size != 0)
     stubsize += last_page_size - 512;
 
+  ufile_ptr filesize = bfd_get_file_size (abfd);
+  if (filesize != 0 && stubsize > filesize)
+    goto fail_format;
+
   /* Save now the stub to be used later.  Put the stub data to a temporary
      location first as tdata still does not exist.  It may not even
      be ever created if we are just checking the file format of ABFD.  */