Read bytes from zero-filled sections correctly
instead of failing to read.
<rdar://problem/12958589>
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@171552 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Symbol/ObjectFile.cpp b/source/Symbol/ObjectFile.cpp
index 6e4ee9b..2388c6d 100644
--- a/source/Symbol/ObjectFile.cpp
+++ b/source/Symbol/ObjectFile.cpp
@@ -378,6 +378,19 @@
section_dst_len = section_bytes_left;
return CopyData (section->GetFileOffset() + section_offset, section_dst_len, dst);
}
+ else
+ {
+ if (section->GetType() == eSectionTypeZeroFill)
+ {
+ const uint64_t section_size = section->GetByteSize();
+ const uint64_t section_bytes_left = section_size - section_offset;
+ uint64_t section_dst_len = dst_len;
+ if (section_dst_len > section_bytes_left)
+ section_dst_len = section_bytes_left;
+ bzero(dst, section_dst_len);
+ return section_dst_len;
+ }
+ }
}
return 0;
}