* elfread.c (elf_symtab_read): Handle error return from
authorPeter Schauer <Peter.Schauer@mytum.de>
Sun, 17 Jul 1994 06:42:14 +0000 (06:42 +0000)
committerPeter Schauer <Peter.Schauer@mytum.de>
Sun, 17 Jul 1994 06:42:14 +0000 (06:42 +0000)
bfd_get_dynamic_symtab_upper_bound gracefully.

gdb/ChangeLog
gdb/elfread.c

index 85bf2c96baa9401993989ce69d4d7ac8a8ae3768..f7caf06e995a6da0f25967c49fd156583c59776d 100644 (file)
@@ -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
index 214197cbfb23db4ada9dffa309724ee3cd03cef9..67ce6086dac7bab19ae37371194a7c8ad0ddb3ce 100644 (file)
@@ -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);