diff --git a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
old mode 100644
new mode 100755
index c1aecfe..fea9cf6
--- a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -715,7 +715,10 @@ SymbolFileDWARF::GetCachedSectionData (uint32_t got_flag, SectionType sect_type,
                 // See if we memory mapped the DWARF segment?
                 if (m_dwarf_data.GetByteSize())
                 {
-                    data.SetData(m_dwarf_data, section_sp->GetOffset (), section_sp->GetFileSize());
+					offset_t size = section_sp->GetFileSize();
+					if (size > m_dwarf_data.GetByteSize())
+						size = m_dwarf_data.GetByteSize();
+                    data.SetData(m_dwarf_data, section_sp->GetOffset(), size);
                 }
                 else
                 {
diff --git a/source/Symbol/ObjectFile.cpp b/source/Symbol/ObjectFile.cpp
old mode 100644
new mode 100755
index ec69c9d..f246d2a
--- a/source/Symbol/ObjectFile.cpp
+++ b/source/Symbol/ObjectFile.cpp
@@ -563,7 +563,10 @@ ObjectFile::MemoryMapSectionData (const Section *section, DataExtractor& section
     else
     {
         // The object file now contains a full mmap'ed copy of the object file data, so just use this
-        return GetData(section->GetFileOffset(), section->GetFileSize(), section_data);
+		offset_t size = section->GetFileSize();
+		if (size > section->GetByteSize())
+			size = section->GetByteSize();
+        return GetData(section->GetFileOffset(), size, section_data);
     }
     section_data.Clear();
     return 0;
