diff options
author | Alexander Cherepanov <cherepan@mccme.ru> | 2014-11-21 11:19:49 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2014-11-21 11:19:49 +0000 |
commit | cd11f78f810cf12b04046ac954ceb6528b00956c (patch) | |
tree | b60fbc2d08d7eaca583b67b66ca7f8e421ac485d | |
parent | 3cfdb7812cda6ca610be8bf65ffaf5138dc0d379 (diff) | |
download | gdb-cd11f78f810cf12b04046ac954ceb6528b00956c.zip gdb-cd11f78f810cf12b04046ac954ceb6528b00956c.tar.gz gdb-cd11f78f810cf12b04046ac954ceb6528b00956c.tar.bz2 |
Fix a snafu setting up the string table read in from a COFF file.
PR binutils/17512
* coffgen.c (_bfd_coff_read_string_table): Test allocation of
string table before clearing the first few bytes.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/coffgen.c | 6 |
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) { |