diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1994-07-17 06:42:14 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1994-07-17 06:42:14 +0000 |
commit | 00306b1e9e2e19c5c8f3078f97dfd39a194a1ddc (patch) | |
tree | 9216f701bcf373c1a7bb867e0ea89cb26f93f4b3 | |
parent | 81794792b70c586ac669013efee4742a3d0c96ad (diff) | |
download | gdb-00306b1e9e2e19c5c8f3078f97dfd39a194a1ddc.zip gdb-00306b1e9e2e19c5c8f3078f97dfd39a194a1ddc.tar.gz gdb-00306b1e9e2e19c5c8f3078f97dfd39a194a1ddc.tar.bz2 |
* elfread.c (elf_symtab_read): Handle error return from
bfd_get_dynamic_symtab_upper_bound gracefully.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/elfread.c | 18 |
2 files changed, 18 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 85bf2c9..f7caf06 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Sat Jul 16 23:39:17 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * elfread.c (elf_symtab_read): Handle error return from + bfd_get_dynamic_symtab_upper_bound gracefully. + Sat Jul 16 14:43:17 1994 Stan Shebs (shebs@andros.cygnus.com) * inferior.h (ARCH_NUM_REGS): New macro, actual number of diff --git a/gdb/elfread.c b/gdb/elfread.c index 214197c..67ce608 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -264,12 +264,20 @@ elf_symtab_read (abfd, addr, objfile, dynamic) int stripped = (bfd_get_symcount (abfd) == 0); if (dynamic) - storage_needed = bfd_get_dynamic_symtab_upper_bound (abfd); + { + storage_needed = bfd_get_dynamic_symtab_upper_bound (abfd); + + /* Nothing to be done if there is no dynamic symtab. */ + if (storage_needed < 0) + return; + } else - storage_needed = bfd_get_symtab_upper_bound (abfd); - if (storage_needed < 0) - error ("Can't read symbols from %s: %s", bfd_get_filename (abfd), - bfd_errmsg (bfd_get_error ())); + { + storage_needed = bfd_get_symtab_upper_bound (abfd); + if (storage_needed < 0) + error ("Can't read symbols from %s: %s", bfd_get_filename (abfd), + bfd_errmsg (bfd_get_error ())); + } if (storage_needed > 0) { symbol_table = (asymbol **) xmalloc (storage_needed); |