summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-08-07 23:41:40 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-08-07 23:41:40 +0200
commit71fddd30ba03374fde7d740085f10a17be17f106 (patch)
tree3d69cd59a12d611c028151e648060f0b0d7956f8
parent8e0179d81acba39ea868c275e5e57ab1bee42c5b (diff)
downloadcppunit-71fddd30ba03374fde7d740085f10a17be17f106.tar.gz
don't crash if demangling fails, fdo#52539
-rw-r--r--src/cppunit/TypeInfoHelper.cpp12
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