From 00306b1e9e2e19c5c8f3078f97dfd39a194a1ddc Mon Sep 17 00:00:00 2001 From: Peter Schauer Date: Sun, 17 Jul 1994 06:42:14 +0000 Subject: [PATCH] * elfread.c (elf_symtab_read): Handle error return from bfd_get_dynamic_symtab_upper_bound gracefully. --- gdb/ChangeLog | 5 +++++ 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); -- 2.7.4