2007-07-27 Michael Snyder <msnyder@access-company.com>
authorMichael Snyder <msnyder@vmware.com>
Fri, 27 Jul 2007 18:54:04 +0000 (18:54 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 27 Jul 2007 18:54:04 +0000 (18:54 +0000)
* coffgen.c (_bfd_coff_read_internal_relocs): Return if count is zero.

bfd/ChangeLog
bfd/coffgen.c

index ef6e817cc2b958f73072916ec43994e5d2767287..979d845367ca105976d207474219b2097a30f3d9 100644 (file)
@@ -1,5 +1,7 @@
 2007-07-27  Michael Snyder  <msnyder@access-company.com>
 
+       * coffgen.c (_bfd_coff_read_internal_relocs): Return if count is zero.
+
        * elf32-i386.c (elf_i386_check_relocs): Check for null pointer.
 
 2007-07-27  H.J. Lu  <hongjiu.lu@intel.com>
index 694625fa0a8d68d2c9910276872cf009953e6544..e5fb6454d34fb185cba4eb360f3e4562fb969aed 100644 (file)
@@ -409,6 +409,9 @@ _bfd_coff_read_internal_relocs (bfd *abfd,
   struct internal_reloc *irel;
   bfd_size_type amt;
 
+  if (sec->reloc_count == 0)
+    return internal_relocs;    /* Nothing to do.  */
+
   if (coff_section_data (abfd, sec) != NULL
       && coff_section_data (abfd, sec)->relocs != NULL)
     {
@@ -425,7 +428,7 @@ _bfd_coff_read_internal_relocs (bfd *abfd,
   if (external_relocs == NULL)
     {
       free_external = bfd_malloc (amt);
-      if (free_external == NULL && sec->reloc_count > 0)
+      if (free_external == NULL)
        goto error_return;
       external_relocs = free_external;
     }
@@ -439,7 +442,7 @@ _bfd_coff_read_internal_relocs (bfd *abfd,
       amt = sec->reloc_count;
       amt *= sizeof (struct internal_reloc);
       free_internal = bfd_malloc (amt);
-      if (free_internal == NULL && sec->reloc_count > 0)
+      if (free_internal == NULL)
        goto error_return;
       internal_relocs = free_internal;
     }