Avoid crashing on invalid or unreadable ELF core

Issue discovered during the GSoC 2014 project implementing FreeBSD
kernel support.  The existing elf-core Process plugin crashed trying
to read from /dev/mem (the kernel memory device).

Patch by Mike Ma.

llvm-svn: 211102
This commit is contained in:
Ed Maste 2014-06-17 14:14:33 +00:00
parent dee4ab08ba
commit 2e940a11e7
1 changed files with 2 additions and 1 deletions

View File

@ -63,7 +63,8 @@ ProcessElfCore::CreateInstance (Target &target, Listener &listener, const FileSp
const size_t header_size = sizeof(llvm::ELF::Elf64_Ehdr);
lldb::DataBufferSP data_sp (crash_file->ReadFileContents(0, header_size));
if (data_sp->GetByteSize() == header_size && elf::ELFHeader::MagicBytesMatch (data_sp->GetBytes()))
if (data_sp && data_sp->GetByteSize() == header_size &&
elf::ELFHeader::MagicBytesMatch (data_sp->GetBytes()))
{
elf::ELFHeader elf_header;
DataExtractor data(data_sp, lldb::eByteOrderLittle, 4);