summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuba Brecka <kuba.brecka@gmail.com>2015-11-30 14:12:47 +0000
committerKuba Brecka <kuba.brecka@gmail.com>2015-11-30 14:12:47 +0000
commit4809b1dca1985124e516ef70940c110bdee05f50 (patch)
tree7fc8fce2ad750cc00a921a8c5db8672128f00368
parent6c9122ffba64d98acc66fd797a3d32177d4ca02e (diff)
downloadbcm5719-llvm-4809b1dca1985124e516ef70940c110bdee05f50.tar.gz
bcm5719-llvm-4809b1dca1985124e516ef70940c110bdee05f50.zip
[sanitizer] Detect an invalid answer in AtosSymbolizer
On OS X, in AtosSymbolizer, if the answer from atos doesn't contain module name, let's bail and return false. There are some cases where this is beneficial, because we'll try DlAddrSymbolizer next (it's next in the symbolizer chain), which might be able to symbolize something that atos couldn't. Differential Revision: http://reviews.llvm.org/D15071 llvm-svn: 254301
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc
index 6de7fe0b716..64048fa7e58 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc
@@ -121,6 +121,12 @@ static bool ParseCommandOutput(const char *str, uptr addr, char **out_name,
const char *rest = trim;
char *symbol_name;
rest = ExtractTokenUpToDelimiter(rest, " (in ", &symbol_name);
+ if (rest[0] == '\0') {
+ InternalFree(symbol_name);
+ InternalFree(trim);
+ return false;
+ }
+
if (internal_strncmp(symbol_name, "0x", 2) != 0)
*out_name = symbol_name;
else
OpenPOWER on IntegriCloud