diff options
author | Tamas Berghammer <tberghammer@google.com> | 2016-07-22 10:43:03 +0000 |
---|---|---|
committer | Tamas Berghammer <tberghammer@google.com> | 2016-07-22 10:43:03 +0000 |
commit | 0576ad6d35e59ec49d934841abbd45ffb6ed5866 (patch) | |
tree | 87e62d47d997501d9784595f441bbc092693c40a /lldb/source/Plugins/ObjectFile | |
parent | aea8b553e3b75601f02629d1433672fbdd72cd7e (diff) | |
download | bcm5719-llvm-0576ad6d35e59ec49d934841abbd45ffb6ed5866.tar.gz bcm5719-llvm-0576ad6d35e59ec49d934841abbd45ffb6ed5866.zip |
Fix a crash when an ELF section symbol have no name
llvm-svn: 276403
Diffstat (limited to 'lldb/source/Plugins/ObjectFile')
-rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index a60daa2b9c5..fc43c460156 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -2211,10 +2211,12 @@ ObjectFileELF::ParseSymbols (Symtab *symtab, break; const char *symbol_name = strtab_data.PeekCStr(symbol.st_name); + if (!symbol_name) + symbol_name = ""; // No need to add non-section symbols that have no names if (symbol.getType() != STT_SECTION && - (symbol_name == NULL || symbol_name[0] == '\0')) + (symbol_name == nullptr || symbol_name[0] == '\0')) continue; // Skipping oatdata and oatexec sections if it is requested. See details above the @@ -2461,7 +2463,7 @@ ObjectFileELF::ParseSymbols (Symtab *symtab, bool is_global = symbol.getBinding() == STB_GLOBAL; uint32_t flags = symbol.st_other << 8 | symbol.st_info | additional_flags; - bool is_mangled = symbol_name ? (symbol_name[0] == '_' && symbol_name[1] == 'Z') : false; + bool is_mangled = (symbol_name[0] == '_' && symbol_name[1] == 'Z'); llvm::StringRef symbol_ref(symbol_name); |