From 213f6727c0d28242afa873edb83b8561e68bda42 Mon Sep 17 00:00:00 2001 From: Andrew Kaylor Date: Thu, 7 Feb 2013 21:30:54 +0000 Subject: [PATCH] Fixing stale pointer problem in ELFObjectFile llvm-svn: 174665 --- lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index 6d6d1ec..c2dc793 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -189,10 +189,11 @@ ObjectFileELF::CreateInstance (const lldb::ModuleSP &module_sp, const uint8_t *magic = data_sp->GetBytes() + data_offset; if (ELFHeader::MagicBytesMatch(magic)) { - // Update the data to contain the entire file // Update the data to contain the entire file if it doesn't already - if (data_sp->GetByteSize() < length) + if (data_sp->GetByteSize() < length) { data_sp = file->MemoryMapFileContents(file_offset, length); + magic = data_sp->GetBytes() + data_offset; + } unsigned address_size = ELFHeader::AddressSizeInBytes(magic); if (address_size == 4 || address_size == 8) { -- 2.7.4