summaryrefslogtreecommitdiff
path: root/libiberty/cplus-dem.c
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2011-03-04 18:25:32 +0000
committerMichael Snyder <msnyder@specifix.com>2011-03-04 18:25:32 +0000
commit90e7e2bd6153028219b189bc2d9b8e862af8137e (patch)
tree5b4e04e58964683b8cc7eef6ece3092bc93bd990 /libiberty/cplus-dem.c
parent20348fce11f4efd2d177ac2c1e562deb8246bf37 (diff)
downloadgdb-90e7e2bd6153028219b189bc2d9b8e862af8137e.tar.gz
2011-03-04 Michael Snyder <msnyder@vmware.com>
* cplus-dem.c (ada_demangle): Stop memory leak. Also fix a one line indent problem.
Diffstat (limited to 'libiberty/cplus-dem.c')
-rw-r--r--libiberty/cplus-dem.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index 84f94b6a8de..6cd9a414f76 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -883,7 +883,7 @@ ada_demangle (const char *mangled, int option ATTRIBUTE_UNUSED)
int len0;
const char* p;
char *d;
- char *demangled;
+ char *demangled = NULL;
/* Discard leading _ada_, which is used for library level subprograms. */
if (strncmp (mangled, "_ada_", 5) == 0)
@@ -1129,10 +1129,11 @@ ada_demangle (const char *mangled, int option ATTRIBUTE_UNUSED)
unknown:
len0 = strlen (mangled);
+ free (demangled);
demangled = XNEWVEC (char, len0 + 3);
if (mangled[0] == '<')
- strcpy (demangled, mangled);
+ strcpy (demangled, mangled);
else
sprintf (demangled, "<%s>", mangled);