diff options
author | Ian Lance Taylor <ian@airs.com> | 1997-03-14 21:46:39 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1997-03-14 21:46:39 +0000 |
commit | f56d634e29f5c0a12dd4d49e769940bf325c9b3b (patch) | |
tree | ef418480b8da44b2dba1743c74021a1a5de7bb83 /bfd/elfcode.h | |
parent | a3ee56ec142fcee01de79be996bda7e3ad076605 (diff) | |
download | gdb-f56d634e29f5c0a12dd4d49e769940bf325c9b3b.zip gdb-f56d634e29f5c0a12dd4d49e769940bf325c9b3b.tar.gz gdb-f56d634e29f5c0a12dd4d49e769940bf325c9b3b.tar.bz2 |
* elfcode.h (elf_slurp_symbol_table): Don't try to read the
version symbols if there aren't any.
Diffstat (limited to 'bfd/elfcode.h')
-rw-r--r-- | bfd/elfcode.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/bfd/elfcode.h b/bfd/elfcode.h index 1320601..fe85d69 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -949,7 +949,10 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic) else { hdr = &elf_tdata (abfd)->dynsymtab_hdr; - verhdr = &elf_tdata (abfd)->dynversym_hdr; + if (elf_dynversym (abfd) == 0) + verhdr = NULL; + else + verhdr = &elf_tdata (abfd)->dynversym_hdr; if ((elf_tdata (abfd)->dynverdef_section != 0 && elf_tdata (abfd)->verdef == NULL) || (elf_tdata (abfd)->dynverref_section != 0 @@ -992,8 +995,7 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic) /* Read the raw ELF version symbol information. */ - if (elf_dynversym (abfd) != 0 - && verhdr != NULL + if (verhdr != NULL && verhdr->sh_size / sizeof (Elf_External_Versym) != symcount) { (*_bfd_error_handler) @@ -1013,7 +1015,7 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic) goto error_return; x_versymp = (Elf_External_Versym *) bfd_malloc (verhdr->sh_size); - if (x_versymp == NULL && symcount != 0) + if (x_versymp == NULL && verhdr->sh_size != 0) goto error_return; if (bfd_read ((PTR) x_versymp, 1, verhdr->sh_size, abfd) |