[sanitizer] Fix a crash with DlAddrSymbolizer and unnamed symbols

Apparently, dladdr() can succeed but return a NULL pointer, in which case strdup will crash.  Let's not call strdup on NULL pointers.

llvm-svn: 254068
This commit is contained in:
Kuba Brecka 2015-11-25 13:11:38 +00:00
parent f763027f04
commit 4aa4a73f17
1 changed files with 1 additions and 1 deletions

View File

@ -33,7 +33,7 @@ bool DlAddrSymbolizer::SymbolizePC(uptr addr, SymbolizedStack *stack) {
int result = dladdr((const void *)addr, &info);
if (!result) return false;
const char *demangled = DemangleCXXABI(info.dli_sname);
stack->info.function = internal_strdup(demangled);
stack->info.function = demangled ? internal_strdup(demangled) : nullptr;
return true;
}