[compiler-rt] r281656 - [sanitizers] DLAddr Symbolizer should fail if demangle fails

Anna Zaks via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 15 14:02:09 PDT 2016


Author: zaks
Date: Thu Sep 15 16:02:09 2016
New Revision: 281656

URL: http://llvm.org/viewvc/llvm-project?rev=281656&view=rev
Log:
[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.

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_mac.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_mac.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_mac.cc?rev=281656&r1=281655&r2=281656&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_mac.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_mac.cc Thu Sep 15 16:02:09 2016
@@ -33,7 +33,8 @@ bool DlAddrSymbolizer::SymbolizePC(uptr
   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;
 }
 




More information about the llvm-commits mailing list