]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug #372120 - c++ demangler demangles symbols which are not c++.
authorMark Wielaard <mark@klomp.org>
Mon, 7 Nov 2016 14:24:26 +0000 (14:24 +0000)
committerMark Wielaard <mark@klomp.org>
Mon, 7 Nov 2016 14:24:26 +0000 (14:24 +0000)
Explicitly check that the symbol starts with "_Z" to only demangle
modern style (gnu_v3) mangled C++ (and Rust) symbols.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16118

NEWS
coregrind/m_demangle/demangle.c

diff --git a/NEWS b/NEWS
index 2d3a4ceecdcbda079a2da475ef1988443f6a48df..1ce9e75c002eadfcb5afac20e975fc7d20ef34b3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,7 @@ where XXXXXX is the bug number as listed below.
 
 371412  Rename wrap_sys_shmat to sys_shmat like other wrappers
 371869  support '%' in symbol Z-encoding
+372120  c++ demangler demangles symbols which are not c++
 
 
 
index 23c4a0221fc7803314168dc15099a2c639b4152d..c8a9ca5d05fdbb985f445617a2d124de03af6bd9 100644 (file)
@@ -141,7 +141,8 @@ void VG_(demangle) ( Bool do_cxx_demangling, Bool do_z_demangling,
    }
 
    /* Possibly undo (1) */
-   if (do_cxx_demangling && VG_(clo_demangle)) {
+   if (do_cxx_demangling && VG_(clo_demangle)
+       && orig != NULL && orig[0] == '_' && orig[1] == 'Z') {
       /* !!! vvv STATIC vvv !!! */
       static HChar* demangled = NULL;
       /* !!! ^^^ STATIC ^^^ !!! */