diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-03-28 13:56:36 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-03-28 14:02:52 +0000 |
commit | faffaeb91a79e3d137d4b6ef7e29fd42e59f77d1 (patch) | |
tree | 4031a11d3899dfcf5ac593b99e73e7ca42f24d3b /vespalib | |
parent | f586464b27375f090d85b030bd8294fd2db51de2 (diff) |
Don't attempt to create a string from nullptr if demangling fails
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/vespa/vespalib/util/classname.cpp | 5 |
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; |