summaryrefslogtreecommitdiff
path: root/view/sharedcache/core/SharedCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'view/sharedcache/core/SharedCache.cpp')
-rw-r--r--view/sharedcache/core/SharedCache.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/view/sharedcache/core/SharedCache.cpp b/view/sharedcache/core/SharedCache.cpp
index a696e9b3..f4580d3d 100644
--- a/view/sharedcache/core/SharedCache.cpp
+++ b/view/sharedcache/core/SharedCache.cpp
@@ -1157,7 +1157,6 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
MappingInfo map;
file->Read(&map.mappingInfo, baseHeader.mappingOffset + sizeof(dyld_cache_mapping_info), sizeof(dyld_cache_mapping_info));
- map.file = file;
map.slideInfoVersion = slideInfoVersion;
if (map.slideInfoVersion == 2)
file->Read(&map.slideInfoV2, slideInfoOff, sizeof(dyld_cache_slide_info_v2));
@@ -1183,7 +1182,6 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
if (mappingAndSlideInfo.slideInfoFileOffset)
{
MappingInfo map;
- map.file = file;
if (mappingAndSlideInfo.size == 0)
continue;
map.slideInfoVersion = file->ReadUInt32(mappingAndSlideInfo.slideInfoFileOffset);
@@ -1251,7 +1249,7 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
{
try
{
- uint16_t start = mapping.file->ReadUShort(cursor);
+ uint16_t start = file->ReadUShort(cursor);
cursor += sizeof(uint16_t);
if (start == DYLD_CACHE_SLIDE_PAGE_ATTR_NO_REBASE)
continue;
@@ -1301,7 +1299,7 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
uint64_t extraCursor = extrasOffset + (j * sizeof(uint16_t));
try
{
- auto extra = mapping.file->ReadUShort(extraCursor);
+ auto extra = file->ReadUShort(extraCursor);
uint16_t aStart = extra;
uint64_t page = mapping.mappingInfo.fileOffset + (pageSize * i);
uint16_t pageStartOffset = (aStart & 0x3FFF)*4;
@@ -1340,7 +1338,7 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
{
try
{
- uint16_t delta = mapping.file->ReadUShort(cursor);
+ uint16_t delta = file->ReadUShort(cursor);
cursor += sizeof(uint16_t);
if (delta == DYLD_CACHE_SLIDE_V3_PAGE_ATTR_NO_REBASE)
continue;
@@ -1352,8 +1350,7 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
loc += delta * sizeof(dyld_cache_slide_pointer3);
try
{
- dyld_cache_slide_pointer3 slideInfo;
- file->Read(&slideInfo, loc, sizeof(slideInfo));
+ dyld_cache_slide_pointer3 slideInfo = { file->ReadULong(loc) };
delta = slideInfo.plain.offsetToNextPointer;
if (slideInfo.auth.authenticated)
@@ -1395,7 +1392,7 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
{
try
{
- uint16_t delta = mapping.file->ReadUShort(cursor);
+ uint16_t delta = file->ReadUShort(cursor);
cursor += sizeof(uint16_t);
if (delta == DYLD_CACHE_SLIDE_V5_PAGE_ATTR_NO_REBASE)
continue;
@@ -1407,8 +1404,7 @@ void SharedCache::ParseAndApplySlideInfoForFile(std::shared_ptr<MMappedFileAcces
loc += delta * sizeof(dyld_cache_slide_pointer5);
try
{
- dyld_cache_slide_pointer5 slideInfo;
- file->Read(&slideInfo, loc, sizeof(slideInfo));
+ dyld_cache_slide_pointer5 slideInfo = { file->ReadULong(loc) };
delta = slideInfo.regular.next;
if (slideInfo.auth.auth)
{