summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-03-28 13:56:36 +0000
committerTor Brede Vekterli <vekterli@yahooinc.com>2022-03-28 14:02:52 +0000
commitfaffaeb91a79e3d137d4b6ef7e29fd42e59f77d1 (patch)
tree4031a11d3899dfcf5ac593b99e73e7ca42f24d3b
parentf586464b27375f090d85b030bd8294fd2db51de2 (diff)
Don't attempt to create a string from nullptr if demangling fails
-rw-r--r--vespalib/src/vespa/vespalib/util/classname.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/vespalib/src/vespa/vespalib/util/classname.cpp b/vespalib/src/vespa/vespalib/util/classname.cpp
index f1dd9de6686..8e9fa6b7041 100644
--- a/vespalib/src/vespa/vespalib/util/classname.cpp
+++ b/vespalib/src/vespa/vespalib/util/classname.cpp
@@ -8,7 +8,10 @@ namespace vespalib {
string demangle(const char * native) {
int status = 0;
size_t size = 0;
- char *unmangled = abi::__cxa_demangle(native, 0, &size, &status);
+ char *unmangled = abi::__cxa_demangle(native, nullptr, &size, &status);
+ if (unmangled == nullptr) {
+ return ""; // Demangling failed for some reason. TODO return `native` instead?
+ }
string result(unmangled);
free(unmangled);
return result;