aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/coffgen.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fc32967..a9e6787 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2014-11-21 Alexander Cherepanov <cherepan@mccme.ru>
+
+ PR binutils/17512
+ * coffgen.c (_bfd_coff_read_string_table): Test allocation of
+ string table before clearing the first few bytes.
+
2014-11-21 Terry Guo <terry.guo@arm.com>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Support FPv5.
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index a22f67a..f19efc3 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -1711,15 +1711,15 @@ _bfd_coff_read_string_table (bfd *abfd)
}
strings = (char *) bfd_malloc (strsize + 1);
+ if (strings == NULL)
+ return NULL;
+
/* PR 17521 file: 079-54929-0.004.
A corrupt file could contain an index that points into the first
STRING_SIZE_SIZE bytes of the string table, so make sure that
they are zero. */
memset (strings, 0, STRING_SIZE_SIZE);
- if (strings == NULL)
- return NULL;
-
if (bfd_bread (strings + STRING_SIZE_SIZE, strsize - STRING_SIZE_SIZE, abfd)
!= strsize - STRING_SIZE_SIZE)
{