Skip zero size segments in module segment info.

This commit is contained in:
Unknown W. Brackets
2014-08-17 14:25:58 -07:00
parent 3ccc0d1e47
commit 0a14fd5ee9
+3 -1
View File
@@ -941,8 +941,10 @@ Module *__KernelLoadELFFromPtr(const u8 *ptr, u32 loadAddress, bool fromTop, std
// TODO: Is summing them up correct? Must not be since the numbers aren't exactly right.
for (int i = 0; i < reader.GetNumSegments(); ++i) {
if (i < (int)ARRAY_SIZE(module->nm.segmentaddr)) {
module->nm.segmentaddr[i] = reader.GetSegmentVaddr(i);
module->nm.segmentsize[i] = reader.GetSegmentMemSize(i);
if (module->nm.segmentsize[i] != 0) {
module->nm.segmentaddr[i] = reader.GetSegmentVaddr(i);
}
}
module->nm.data_size += reader.GetSegmentDataSize(i);
}