diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-08-07 23:41:40 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-08-07 23:41:40 +0200 |
commit | 71fddd30ba03374fde7d740085f10a17be17f106 (patch) | |
tree | 3d69cd59a12d611c028151e648060f0b0d7956f8 | |
parent | 8e0179d81acba39ea868c275e5e57ab1bee42c5b (diff) | |
download | cppunit-71fddd30ba03374fde7d740085f10a17be17f106.tar.gz |
don't crash if demangling fails, fdo#52539
-rw-r--r-- | src/cppunit/TypeInfoHelper.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/cppunit/TypeInfoHelper.cpp b/src/cppunit/TypeInfoHelper.cpp index ff1d662..8c97178 100644 --- a/src/cppunit/TypeInfoHelper.cpp +++ b/src/cppunit/TypeInfoHelper.cpp @@ -24,8 +24,16 @@ TypeInfoHelper::getClassName( const std::type_info &info ) c_name = abi::__cxa_demangle( info.name(), 0, 0, &status ); - std::string name( c_name ); - free( c_name ); + std::string name; + if(c_name) + { + name = std::string( c_name ); + free( c_name ); + } + else + { + name = std::string( info.name() ); + } #else // CPPUNIT_HAVE_GCC_ABI_DEMANGLE |