aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/binary.c2
-rw-r--r--bfd/mmo.c6
-rw-r--r--bfd/srec.c6
4 files changed, 14 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 53bfe0d..9bef708 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/binary.c b/bfd/binary.c
index 38d0cc3..c4aec2b 100644
--- a/bfd/binary.c
+++ b/bfd/binary.c
@@ -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;
diff --git a/bfd/mmo.c b/bfd/mmo.c
index 0d3e963..c0e8082 100644
--- 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;
diff --git a/bfd/srec.c b/bfd/srec.c
index cd61cd2..a5f588c 100644
--- a/bfd/srec.c
+++ b/bfd/srec.c
@@ -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;