aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2022-11-17 07:33:55 +1030
committerAlan Modra <amodra@gmail.com>2022-11-18 11:31:17 +1030
commit7828dfa93b210b6bbc6596e6e096cc150a9f8aa4 (patch)
treea7344a6ce64162e8c87c15afc2924407b97d9637
parent31f221d0bc7c6fcb761442287842f967dd063ced (diff)
downloadgdb-7828dfa93b210b6bbc6596e6e096cc150a9f8aa4.zip
gdb-7828dfa93b210b6bbc6596e6e096cc150a9f8aa4.tar.gz
gdb-7828dfa93b210b6bbc6596e6e096cc150a9f8aa4.tar.bz2
go32 sanity check
* coff-stgo32 (go32exe_check_format): Sanity check stubsize against filesize before malloc.
-rw-r--r--bfd/coff-stgo32.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/bfd/coff-stgo32.c b/bfd/coff-stgo32.c
index cb0df38..1727175 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. */