* som.c (som_slurp_string_table): Allocate the strings with malloc
authorJeff Law <law@redhat.com>
Wed, 25 Oct 1995 22:23:33 +0000 (22:23 +0000)
committerJeff Law <law@redhat.com>
Wed, 25 Oct 1995 22:23:33 +0000 (22:23 +0000)
        since they're free'd by free_cached_info.
        (som_slurp_symbol_table): Similarly for the symbol table.
Fixes crash (nm /lib/libc.a on hpux10).

bfd/ChangeLog
bfd/som.c

index 61cb983b4549cd2f1ce02223de787849c52ab0f4..85c48e6a8231eef5313ae619ee6bebcbe7445632 100644 (file)
@@ -1,3 +1,9 @@
+Wed Oct 25 16:19:27 1995  Jeffrey A Law  (law@cygnus.com)
+
+       * som.c (som_slurp_string_table): Allocate the strings with malloc
+       since they're free'd by free_cached_info.
+       (som_slurp_symbol_table): Similarly for the symbol table.
+
 Wed Oct 25 14:59:22 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 
        * Makefile.in (diststuff):  Don't make headers.
index dfba504bce36b4882083ee30efff5e92faf4bb06..8a788d74c4efdd77d520dbe88feb378c020cdebe 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -3840,7 +3840,8 @@ som_slurp_string_table (abfd)
     }
 
   /* Allocate and read in the string table.  */
-  stringtab = bfd_zalloc (abfd, obj_som_stringtab_size (abfd));
+  stringtab = malloc (obj_som_stringtab_size (abfd));
+  bzero (stringtab, obj_som_stringtab_size (abfd));
   if (stringtab == NULL)
     {
       bfd_set_error (bfd_error_no_memory);
@@ -3947,7 +3948,8 @@ som_slurp_symbol_table (abfd)
   stringtab = obj_som_stringtab (abfd);
 
   symbase = (som_symbol_type *)
-    bfd_zalloc (abfd, symbol_count * sizeof (som_symbol_type));
+    malloc (symbol_count * sizeof (som_symbol_type));
+  bzero (symbase, symbol_count * sizeof (som_symbol_type));
   if (symbase == NULL)
     {
       bfd_set_error (bfd_error_no_memory);
@@ -4087,8 +4089,8 @@ som_slurp_symbol_table (abfd)
       sym++;
     }
 
 /* Save our results and return success.  */
 obj_som_symtab (abfd) = symbase;
+ /* Save our results and return success.  */
+ obj_som_symtab (abfd) = symbase;
  successful_return:
   if (buf != NULL)
     free (buf);
@@ -5964,6 +5966,7 @@ som_bfd_link_split_section (abfd, sec)
 
 #define        som_close_and_cleanup           som_bfd_free_cached_info
 
+#define som_read_ar_hdr                        _bfd_generic_read_ar_hdr
 #define som_openr_next_archived_file   bfd_generic_openr_next_archived_file
 #define som_generic_stat_arch_elt      bfd_generic_stat_arch_elt
 #define som_truncate_arname            bfd_bsd_truncate_arname