From c5e5659022caa9408be2daeac6a66b4f75af58f6 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 19 Jul 2021 17:32:18 +0200 Subject: [PATCH] Fix crash when demangled symbol is n/a std::string foo (NULL) can throw a std::__throw_logic_error which was not caught. --- libs/pbd/demangle.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libs/pbd/demangle.cc b/libs/pbd/demangle.cc index 1df9f36e27..479162211f 100644 --- a/libs/pbd/demangle.cc +++ b/libs/pbd/demangle.cc @@ -27,16 +27,15 @@ std::string PBD::demangle_symbol (const std::string& mangled_symbol) { #if defined(__GLIBCXX__) - int status; try { - + int status; char* realname = abi::__cxa_demangle (mangled_symbol.c_str(), 0, 0, &status); std::string demangled_symbol (realname); free (realname); return demangled_symbol; - } catch (const std::exception&) { - + } catch (...) { + /* may happen if realname == NULL */ } #endif