diff options
| author | Mason Reed <mason@vector35.com> | 2025-04-28 18:28:26 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-04-28 18:28:31 -0400 |
| commit | 8267ab475cb2ac82fd3724c009f21e8e30143f6b (patch) | |
| tree | cb3f759c3b9659b077b090ce66d402a43b9fede9 /view/sharedcache/workflow | |
| parent | 4b04f93ad0161bef8434300a153aed4f5ec100f9 (diff) | |
[SharedCache] Improve support for older shared cache versions
Fixed branch island regions being skipped
Diffstat (limited to 'view/sharedcache/workflow')
| -rw-r--r-- | view/sharedcache/workflow/SharedCacheWorkflow.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/view/sharedcache/workflow/SharedCacheWorkflow.cpp b/view/sharedcache/workflow/SharedCacheWorkflow.cpp index 7f63866a..dcccfe74 100644 --- a/view/sharedcache/workflow/SharedCacheWorkflow.cpp +++ b/view/sharedcache/workflow/SharedCacheWorkflow.cpp @@ -126,7 +126,9 @@ void AnalyzeStubFunction(Ref<Function> func, Ref<MediumLevelILFunction> mlil, Sh if (region->type == SharedCacheRegionTypeImage) return false; // Adjust the new region semantics to read only, this helps analysis pickup constant loads in our stub functions. - region->flags = static_cast<BNSegmentFlag>(SegmentReadable | SegmentContainsData); + // NOTE: We do NOT do this for stub island as that contains CODE! + if (region->type != SharedCacheRegionTypeStubIsland) + region->flags = static_cast<BNSegmentFlag>(SegmentReadable | SegmentContainsData); return controller.ApplyRegion(*view, *region); }; |
