* aoutx.h (NAME(aout,canonicalize_reloc)): Don't error out if
authorIan Lance Taylor <ian@airs.com>
Tue, 5 Apr 1994 15:32:49 +0000 (15:32 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 5 Apr 1994 15:32:49 +0000 (15:32 +0000)
section->relocation is NULL; malloc might have returned NULL when
given a zero size if there were no relocations.
* bout.c (b_out_canonicalize_reloc): Likewise.
* coffcode.h (coff_canonicalize_reloc): Likewise.
* ecoff.c (ecoff_canonicalize_reloc): Likewise.
* elfcode.h (elf_canonicalize_reloc): Likewise.
* mipsbsd.c (MY(canonicalize_reloc)): Likewise.
* i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
* nlmcode.h (nlm_canonicalize_reloc): Likewise.
* som.c (som_canonicalize_reloc): Likewise.
* hp300hpux.c (MY(slurp_reloc_table)): Likewise.  Also, if malloc
returns NULL, don't report an error if we asked for zero bytes.
* i386lynx.c (NAME(lynx,slurp_reloc_table)): If malloc returns
NULL, don't report an error if we asked for zero bytes.
* nlmcode.h (nlm_slurp_reloc_fixups): Likewise.

bfd/ChangeLog
bfd/aoutx.h
bfd/bout.c
bfd/coffcode.h
bfd/ecoff.c
bfd/elfcode.h
bfd/hp300hpux.c
bfd/i386lynx.c
bfd/mipsbsd.c
bfd/nlmcode.h
bfd/som.c

index abe6ed1..ea22d42 100644 (file)
@@ -1,3 +1,22 @@
+Tue Apr  5 11:22:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * aoutx.h (NAME(aout,canonicalize_reloc)): Don't error out if
+       section->relocation is NULL; malloc might have returned NULL when
+       given a zero size if there were no relocations.
+       * bout.c (b_out_canonicalize_reloc): Likewise.
+       * coffcode.h (coff_canonicalize_reloc): Likewise.
+       * ecoff.c (ecoff_canonicalize_reloc): Likewise.
+       * elfcode.h (elf_canonicalize_reloc): Likewise.
+       * mipsbsd.c (MY(canonicalize_reloc)): Likewise.
+       * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
+       * nlmcode.h (nlm_canonicalize_reloc): Likewise.
+       * som.c (som_canonicalize_reloc): Likewise.
+       * hp300hpux.c (MY(slurp_reloc_table)): Likewise.  Also, if malloc
+       returns NULL, don't report an error if we asked for zero bytes.
+       * i386lynx.c (NAME(lynx,slurp_reloc_table)): If malloc returns
+       NULL, don't report an error if we asked for zero bytes.
+       * nlmcode.h (nlm_slurp_reloc_fixups): Likewise.
+
 Mon Apr  4 15:30:49 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
        * aoutx.h (NAME(aout,bfd_free_cached_info)): Don't free anything
index 2bd29ec..5a45b0b 100644 (file)
@@ -2603,7 +2603,6 @@ NAME(aout,canonicalize_reloc) (abfd, section, relptr, symbols)
   }
   else {
     tblptr = section->relocation;
-    if (!tblptr) return 0;
 
     for (count = 0; count++ < section->reloc_count;)
       {
index b0570c9..d560e8c 100644 (file)
@@ -818,11 +818,9 @@ b_out_canonicalize_reloc (abfd, section, relptr, symbols)
   arelent *tblptr = section->relocation;
   unsigned int count = 0;
 
- if (!(tblptr || b_out_slurp_reloc_table (abfd, section, symbols)))
-   return -1;
 if (!(tblptr || b_out_slurp_reloc_table (abfd, section, symbols)))
+    return -1;
   tblptr = section->relocation;
- if (!tblptr)
-   return -1;
 
   for (; count++ < section->reloc_count;)
     *relptr++ = tblptr++;
index 445ce5b..3b75ef4 100644 (file)
@@ -2423,8 +2423,6 @@ coff_canonicalize_reloc (abfd, section, relptr, symbols)
        return -1;
 
       tblptr = section->relocation;
-      if (!tblptr)
-       return -1;
 
       for (; count++ < section->reloc_count;)
        *relptr++ = tblptr++;
index fe786ab..6183305 100644 (file)
@@ -1944,8 +1944,6 @@ ecoff_canonicalize_reloc (abfd, section, relptr, symbols)
        return -1;
 
       tblptr = section->relocation;
-      if (tblptr == (arelent *) NULL)
-       return -1;
 
       for (count = 0; count < section->reloc_count; count++)
        *relptr++ = tblptr++;
index 7d94179..5c5e8cb 100644 (file)
@@ -3077,8 +3077,6 @@ elf_canonicalize_reloc (abfd, section, relptr, symbols)
     }
 
   tblptr = section->relocation;
-  if (!tblptr)
-    return -1;
 
   for (; count++ < section->reloc_count;)
     *relptr++ = tblptr++;
index 3b8cb9c..496f754 100644 (file)
@@ -750,7 +750,7 @@ doit:
 
   reloc_cache = (arelent *) bfd_zalloc (abfd, (size_t) (count * sizeof
                                                        (arelent)));
-  if (!reloc_cache)
+  if (!reloc_cache && count != 0)
     {
     nomem:
       bfd_set_error (bfd_error_no_memory);
@@ -758,7 +758,7 @@ doit:
     }
 
   relocs = (PTR) bfd_alloc (abfd, reloc_size);
-  if (!relocs)
+  if (!relocs && reloc_size != 0)
     {
       bfd_release (abfd, reloc_cache);
       goto nomem;
@@ -863,8 +863,6 @@ MY (canonicalize_reloc) (abfd, section, relptr, symbols)
   else
     {
       tblptr = section->relocation;
-      if (!tblptr)
-       return -1;
 
       for (count = 0; count++ < section->reloc_count;)
        {
index 784a6f2..3db7b14 100644 (file)
@@ -427,7 +427,7 @@ doit:
   memset (reloc_cache, 0, count * sizeof (arelent));
 
   relocs = (PTR) bfd_alloc (abfd, reloc_size);
-  if (!relocs)
+  if (!relocs && reloc_size != 0)
     {
       free (reloc_cache);
       goto nomem;
@@ -536,7 +536,7 @@ NAME(lynx,canonicalize_reloc) (abfd, section, relptr, symbols)
   arelent *tblptr = section->relocation;
   unsigned int count;
 
-  if (!(tblptr || NAME (lynx, slurp_reloc_table) (abfd, section, symbols)))
+  if (!(tblptr || NAME(lynx,slurp_reloc_table) (abfd, section, symbols)))
     return -1;
 
   if (section->flags & SEC_CONSTRUCTOR)
@@ -551,8 +551,6 @@ NAME(lynx,canonicalize_reloc) (abfd, section, relptr, symbols)
   else
     {
       tblptr = section->relocation;
-      if (!tblptr)
-       return -1;
 
       for (count = 0; count++ < section->reloc_count;)
        {
index 5d699aa..0b6424d 100644 (file)
@@ -303,8 +303,6 @@ MY(canonicalize_reloc)(abfd, section, relptr, symbols)
   if (!NAME(aout,slurp_reloc_table)(abfd, section, symbols))
     return -1;
   tblptr = section->relocation;
-  if (!tblptr)
-    return -1;
 
   /* fix up howto entries */
   for (count = 0; count++ < section->reloc_count;) 
index 1ae6cc9..13e4319 100644 (file)
@@ -1050,7 +1050,7 @@ nlm_slurp_reloc_fixups (abfd)
   count = nlm_fixed_header (abfd)->numberOfRelocationFixups;
   rels = (arelent *) bfd_alloc (abfd, count * sizeof (arelent));
   secs = (asection **) bfd_alloc (abfd, count * sizeof (asection *));
-  if (rels == NULL || secs == NULL)
+  if ((rels == NULL || secs == NULL) && count != 0)
     {
       bfd_set_error (bfd_error_no_memory);
       return false;
@@ -1136,8 +1136,6 @@ nlm_canonicalize_reloc (abfd, sec, relptr, symbols)
       if (nlm_slurp_reloc_fixups (abfd) == false)
        return -1;
       rels = nlm_relocation_fixups (abfd);
-      if (rels == NULL)
-       return -1;
     }
   secs = nlm_relocation_fixup_secs (abfd);
 
index 63f406a..7c913b1 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -4221,8 +4221,6 @@ som_canonicalize_reloc (abfd, section, relptr, symbols)
 
   count = section->reloc_count;
   tblptr = section->relocation;
-  if (tblptr == (arelent *) NULL)
-    return -1;
 
   while (count--)
     *relptr++ = tblptr++;