This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r241760 - in /trunk/libiberty: ChangeLog cplus-...
- From: mark at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Tue, 01 Nov 2016 23:13:10 -0000
- Subject: r241760 - in /trunk/libiberty: ChangeLog cplus-...
Author: mark
Date: Tue Nov 1 23:13:10 2016
New Revision: 241760
URL: https://gcc.gnu.org/viewcvs?rev=241760&root=gcc&view=rev
Log:
libiberty: Fix memory leak in ada_demangle when symbol cannot be demangled.
When a symbol cannot be demangled in ada_demangle a new demangled VEC
will be allocated without deleting the demangled VEC already in use.
Running testsuite/test-demangle under valgrind will show the leak for
this entry in testsuite/demangle-expected:
# Elaborated flag (not demangled)
--format=gnat
x_E
<x_E>
11 bytes in 1 blocks are definitely lost in loss record 1 of 1
at 0x4C27BE3: malloc (vg_replace_malloc.c:299)
by 0x413FE7: xmalloc (xmalloc.c:148)
by 0x4025EC: ada_demangle (cplus-dem.c:930)
by 0x402C59: cplus_demangle (cplus-dem.c:892)
by 0x400FEC: main (test-demangle.c:317)
libiberty/ChangeLog:
* cplus-dem.c (ada_demangle): Initialize demangled to NULL and
XDELETEVEC demangled when unknown.
Modified:
trunk/libiberty/ChangeLog
trunk/libiberty/cplus-dem.c