* nlmcode.h (nlm_swap_auxiliary_headers_in): Keep section table
authorStu Grossman <grossman@cygnus>
Fri, 22 Apr 1994 05:59:24 +0000 (05:59 +0000)
committerStu Grossman <grossman@cygnus>
Fri, 22 Apr 1994 05:59:24 +0000 (05:59 +0000)
(from CyGnUsSeCs) in more permanent memory to keep section names
from getting trashed.

bfd/ChangeLog
bfd/nlmcode.h

index 583288de5c950af3a1952a47c516ae0ab922e124..522e4cbeadcd96b8c6aaede0a91796c0e6e132bd 100644 (file)
@@ -1,3 +1,9 @@
+Thu Apr 21 22:54:22 1994  Stu Grossman  (grossman at cygnus.com)
+
+       * nlmcode.h (nlm_swap_auxiliary_headers_in):  Keep section table
+       (from CyGnUsSeCs) in more permanent memory to keep section names
+       from getting trashed.
+
 Thu Apr 21 09:29:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
 
        * libelf.h (elf_obj_tdata):  Add members for dynamic symbol table
index 6655a6fd07cee9e1a08629c08a6af03a8627c327..63b2b5c2b6d16c96d477ea536a9a050726906d68 100644 (file)
@@ -567,7 +567,8 @@ nlm_swap_auxiliary_headers_in (abfd)
             is what we want to happen.  The sections from the
             original file, which may be subsets of the NLM section,
             can only be found using bfd_map_over_sections.  */
-         contents = (bfd_byte *) malloc (len);
+
+         contents = (bfd_byte *) bfd_alloc (abfd, len);
          if (contents == (bfd_byte *) NULL)
            {
              bfd_set_error (bfd_error_no_memory);
@@ -577,10 +578,7 @@ nlm_swap_auxiliary_headers_in (abfd)
          if (bfd_seek (abfd, nlm_cygnus_section_header (abfd)->offset,
                        SEEK_SET) != 0
              || bfd_read (contents, len, 1, abfd) != len)
-           {
-             free (contents);
-             return false;
-           }
+           return false;
          p = contents;
          pend = p + len;
          while (p < pend)
@@ -609,10 +607,7 @@ nlm_swap_auxiliary_headers_in (abfd)
 
              newsec = bfd_make_section_anyway (abfd, name);
              if (newsec == (asection *) NULL)
-               {
-                 free (contents);
-                 return false;
-               }
+               return false;
              newsec->_raw_size = size;
              if (filepos != 0)
                {
@@ -621,7 +616,6 @@ nlm_swap_auxiliary_headers_in (abfd)
                }
            }
 
-         free (contents);
          if (bfd_seek (abfd, pos, SEEK_SET) != 0)
            return false;
        }