From: Tristan Gingold Date: Thu, 9 Jun 2011 15:29:05 +0000 (+0000) Subject: 2011-06-09 Tristan Gingold X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e682d13b0a33c653960e7ae1dca56cd8337c44b4;p=binutils-gdb.git 2011-06-09 Tristan Gingold * od-xcoff.c (xcoff32_read_symbols): Allow missing string table length. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 0de33e513b7..918c7e1def2 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2011-06-09 Tristan Gingold + + * od-xcoff.c (xcoff32_read_symbols): Allow missing string table + length. + 2011-06-08 Nick Clifton PR binutils/12855 diff --git a/binutils/od-xcoff.c b/binutils/od-xcoff.c index 47d0248847b..5b8b5896eb5 100644 --- a/binutils/od-xcoff.c +++ b/binutils/od-xcoff.c @@ -639,17 +639,14 @@ xcoff32_read_symbols (bfd *abfd, struct xcoff_dump *data) + data->nsyms * (unsigned)sizeof (struct external_syment); /* Read string table. */ - if (bfd_seek (abfd, stptr, SEEK_SET) != 0) + if (bfd_seek (abfd, stptr, SEEK_SET) != 0 + || bfd_bread (&stsz_arr, sizeof (stsz_arr), abfd) != sizeof (stsz_arr)) { + non_fatal (_("cannot read strings table length")); data->strings_size = 0; } else { - if (bfd_bread (&stsz_arr, sizeof (stsz_arr), abfd) != sizeof (stsz_arr)) - { - non_fatal (_("cannot read strings table len")); - return; - } data->strings_size = bfd_h_get_32 (abfd, stsz_arr); if (data->strings_size > sizeof (stsz_arr)) {