[binutils-gdb] go32 sanity check

Alan Modra amodra@sourceware.org
Fri Nov 18 01:03:56 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7828dfa93b210b6bbc6596e6e096cc150a9f8aa4

commit 7828dfa93b210b6bbc6596e6e096cc150a9f8aa4
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Nov 17 07:33:55 2022 +1030

    go32 sanity check
    
            * coff-stgo32 (go32exe_check_format): Sanity check stubsize against
            filesize before malloc.

Diff:
---
 bfd/coff-stgo32.c | 4 ++++
 1 file changed, 4 insertions(+)

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.  */


More information about the Binutils-cvs mailing list