* srec.c (srec_canonicalize_symtab): Don't alloc when symcount
authorAlan Modra <amodra@gmail.com>
Thu, 26 Jul 2007 11:13:59 +0000 (11:13 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 26 Jul 2007 11:13:59 +0000 (11:13 +0000)
is zero.  Correct return value on error.
* mmo.c (mmo_canonicalize_symtab): Likewise.
* binary.c (binary_canonicalize_symtab) Correct return on error.

bfd/ChangeLog
bfd/binary.c
bfd/mmo.c
bfd/srec.c

index 53bfe0d..9bef708 100644 (file)
@@ -1,3 +1,10 @@
+2007-07-26  Alan Modra  <amodra@bigpond.net.au>
+
+       * srec.c (srec_canonicalize_symtab): Don't alloc when symcount
+       is zero.  Correct return value on error.
+       * mmo.c (mmo_canonicalize_symtab): Likewise.
+       * binary.c (binary_canonicalize_symtab) Correct return on error.
+
 2007-07-26  Thiemo Seufer  <ths@mips.com>
 
        * bfd.c (_bfd_set_gp_value): Use abort instead of BFD_FAIL.
index 38d0cc3..c4aec2b 100644 (file)
@@ -169,7 +169,7 @@ binary_canonicalize_symtab (bfd *abfd, asymbol **alocation)
 
   syms = bfd_alloc (abfd, amt);
   if (syms == NULL)
-    return 0;
+    return -1;
 
   /* Start symbol.  */
   syms[0].the_bfd = abfd;
index 0d3e963..c0e8082 100644 (file)
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -2097,7 +2097,7 @@ mmo_canonicalize_symtab (bfd *abfd, asymbol **alocation)
   unsigned int i;
 
   csymbols = abfd->tdata.mmo_data->csymbols;
-  if (csymbols == NULL)
+  if (csymbols == NULL && symcount != 0)
     {
       asymbol *c;
       struct mmo_symbol *s;
@@ -2119,8 +2119,8 @@ mmo_canonicalize_symtab (bfd *abfd, asymbol **alocation)
             mmo_sort_mmo_symbols);
 
       csymbols = (asymbol *) bfd_alloc (abfd, symcount * sizeof (asymbol));
-      if (csymbols == NULL && symcount != 0)
-       return FALSE;
+      if (csymbols == NULL)
+       return -1;
       abfd->tdata.mmo_data->csymbols = csymbols;
 
       for (msp = (struct mmo_symbol **) alocation, c = csymbols;
index cd61cd2..a5f588c 100644 (file)
@@ -1125,14 +1125,14 @@ srec_canonicalize_symtab (bfd *abfd, asymbol **alocation)
   unsigned int i;
 
   csymbols = abfd->tdata.srec_data->csymbols;
-  if (csymbols == NULL)
+  if (csymbols == NULL && symcount != 0)
     {
       asymbol *c;
       struct srec_symbol *s;
 
       csymbols = bfd_alloc (abfd, symcount * sizeof (asymbol));
-      if (csymbols == NULL && symcount != 0)
-       return 0;
+      if (csymbols == NULL)
+       return -1;
       abfd->tdata.srec_data->csymbols = csymbols;
 
       for (s = abfd->tdata.srec_data->symbols, c = csymbols;