diff options
author | Anna Zaks <ganna@apple.com> | 2016-09-15 21:02:09 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2016-09-15 21:02:09 +0000 |
commit | b5baf5bbfbd0552b2942a7d6494a4eda9eee1854 (patch) | |
tree | b2f2e509ac2b977cd6e74346b8c94e3a6fc2c900 | |
parent | 02aff9fa8f2a6ad9ec5cc2479878755bd52a629e (diff) |
[sanitizers] DLAddr Symbolizer should fail if demangle fails
This can case crashes in high verbosity mode when demangling fails.
Not including a test case since this is hard to reproduce.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281656 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/sanitizer_common/sanitizer_symbolizer_mac.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/sanitizer_common/sanitizer_symbolizer_mac.cc b/lib/sanitizer_common/sanitizer_symbolizer_mac.cc index d591abca1..01f499ba9 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_mac.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_mac.cc @@ -33,7 +33,8 @@ bool DlAddrSymbolizer::SymbolizePC(uptr addr, SymbolizedStack *stack) { int result = dladdr((const void *)addr, &info); if (!result) return false; const char *demangled = DemangleSwiftAndCXX(info.dli_sname); - stack->info.function = demangled ? internal_strdup(demangled) : nullptr; + if (!demangled) return false; + stack->info.function = internal_strdup(demangled); return true; } |