summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process
diff options
context:
space:
mode:
authorEd Maste <emaste@freebsd.org>2014-06-17 14:14:33 +0000
committerEd Maste <emaste@freebsd.org>2014-06-17 14:14:33 +0000
commit2e940a11e7c64718d36955e4ca68fa87aa9d5a9d (patch)
treeb91ab1edc0cc0c54a2c4671e7f4da9fd8d4869f4 /lldb/source/Plugins/Process
parentdee4ab08ba956efd76aa10da46510dcddecceacf (diff)
downloadbcm5719-llvm-2e940a11e7c64718d36955e4ca68fa87aa9d5a9d.tar.gz
bcm5719-llvm-2e940a11e7c64718d36955e4ca68fa87aa9d5a9d.zip
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
Diffstat (limited to 'lldb/source/Plugins/Process')
-rw-r--r--lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
index 0fa253d7e0e..087ee4965fa 100644
--- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
@@ -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);
OpenPOWER on IntegriCloud