summaryrefslogtreecommitdiff
path: root/view/kernelcache/core/KernelCacheController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'view/kernelcache/core/KernelCacheController.cpp')
-rw-r--r--view/kernelcache/core/KernelCacheController.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/view/kernelcache/core/KernelCacheController.cpp b/view/kernelcache/core/KernelCacheController.cpp
index 40d4a1df..753c28ad 100644
--- a/view/kernelcache/core/KernelCacheController.cpp
+++ b/view/kernelcache/core/KernelCacheController.cpp
@@ -124,10 +124,13 @@ bool KernelCacheController::ApplyImage(BinaryView& view, const CacheImage& image
loadedRegion = true;
for (const auto& segment : image.header->segments)
{
- auto flags = SegmentFlagsFromMachOProtections(segment.initprot, segment.maxprot);
+ if (segment.vmsize == 0)
+ continue;
+
+ auto flags = SegmentFlagsForSegment(segment);
view.AddAutoSegment(segment.vmaddr, segment.vmsize, segment.fileoff, segment.filesize, flags);
- auto relocations = m_cache.GetRelocations();
+ const auto& relocations = m_cache.GetRelocations();
auto begin = std::lower_bound(relocations.begin(), relocations.end(), segment.vmaddr,
[](const std::pair<uint64_t, uint64_t>& reloc, uint64_t addr) {