diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fc329677ad..a9e6787c55 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2014-11-21 Alexander Cherepanov + + 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 * elf32-arm.c (elf32_arm_merge_eabi_attributes): Support FPv5. diff --git a/bfd/coffgen.c b/bfd/coffgen.c index a22f67a69d..f19efc3aff 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) {