aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/bfd.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 33313c0..ad71032 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-29 Michael Snyder <msnyder@svkmacdonelllnx>
+
+ * bfd.c (bfd_demangle): Plug memory leak (Coverity).
+
2007-06-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
* Makefile.am: Add cr16 related entry
diff --git a/bfd/bfd.c b/bfd/bfd.c
index b1c49aa..510df0a 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1773,12 +1773,12 @@ bfd_demangle (bfd *abfd, const char *name, int options)
suf = res + len;
suf_len = strlen (suf) + 1;
final = bfd_malloc (pre_len + len + suf_len);
- if (final == NULL)
- return NULL;
-
- memcpy (final, pre, pre_len);
- memcpy (final + pre_len, res, len);
- memcpy (final + pre_len + len, suf, suf_len);
+ if (final != NULL)
+ {
+ memcpy (final, pre, pre_len);
+ memcpy (final + pre_len, res, len);
+ memcpy (final + pre_len + len, suf, suf_len);
+ }
free (res);
res = final;
}