mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-16 00:38:58 +00:00
[Object, ELF] Fix segmentation fault in ELFFile::getSectionName().
Don't do a null dereference if .shstrtab section is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239124 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
22a5d492ef
commit
83f903f352
@ -928,7 +928,7 @@ ErrorOr<StringRef> ELFFile<ELFT>::getSymbolName(const Elf_Shdr *Section,
|
||||
template <class ELFT>
|
||||
ErrorOr<StringRef>
|
||||
ELFFile<ELFT>::getSectionName(const Elf_Shdr *Section) const {
|
||||
if (Section->sh_name >= dot_shstrtab_sec->sh_size)
|
||||
if (!dot_shstrtab_sec || Section->sh_name >= dot_shstrtab_sec->sh_size)
|
||||
return object_error::parse_failed;
|
||||
return StringRef(getString(dot_shstrtab_sec, Section->sh_name));
|
||||
}
|
||||
|
BIN
test/DebugInfo/Inputs/invalid.elf.no-shstrtab
Normal file
BIN
test/DebugInfo/Inputs/invalid.elf.no-shstrtab
Normal file
Binary file not shown.
@ -4,3 +4,6 @@ RUN: llvm-dwarfdump %p/Inputs/invalid.elf 2>&1 | FileCheck %s --check-prefix=INV
|
||||
RUN: llvm-dwarfdump %p/Inputs/invalid.elf.2 2>&1 | FileCheck %s --check-prefix=INVALID-ELF
|
||||
RUN: llvm-dwarfdump %p/Inputs/invalid.elf.3 2>&1 | FileCheck %s --check-prefix=INVALID-ELF
|
||||
INVALID-ELF: Invalid data was encountered while parsing the file
|
||||
|
||||
RUN: llvm-dwarfdump %p/Inputs/invalid.elf.no-shstrtab 2>&1 | FileCheck %s --check-prefix=EMPTY
|
||||
EMPTY: .debug_info contents:
|
||||
|
Loading…
x
Reference in New Issue
Block a user