summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libiberty/ChangeLog4
-rw-r--r--libiberty/cplus-dem.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index afa8c6b3bd9..b24fb4fc9e2 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,7 @@
+2009-09-23 Matthew Gingell <gingell@adacore.com>
+
+ * cplus-dem.c (ada_demangle): Ensure demangled is freed.
+
2009-09-22 Ozkan Sezer <sezeroz@gmail.com>
* choose-temp.c: Include unistd.h for mingw targets.
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index 41674675366..66285141ffa 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -984,7 +984,10 @@ ada_demangle (const char *mangled, int option ATTRIBUTE_UNUSED)
goto Suppress;
if (! changed)
- return NULL;
+ {
+ free (demangled);
+ return NULL;
+ }
else
return demangled;