diff options
author | Liam <byteslice@airmail.cc> | 2023-11-17 20:58:29 +0100 |
---|---|---|
committer | t895 <clombardo169@gmail.com> | 2023-11-25 06:46:15 +0100 |
commit | f2a840908380f876a1b5675e9cae281c8db77776 (patch) | |
tree | 2e8f48f0e20a3033104121c2fb7a8535e4bdc9de /src/core/hle/kernel/k_page_table_base.cpp | |
parent | core: Respect memory permissions in Map (diff) | |
download | yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.gz yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.bz2 yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.lz yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.xz yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.zst yuzu-f2a840908380f876a1b5675e9cae281c8db77776.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/k_page_table_base.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/hle/kernel/k_page_table_base.cpp b/src/core/hle/kernel/k_page_table_base.cpp index dc6524146..f2ffc39c1 100644 --- a/src/core/hle/kernel/k_page_table_base.cpp +++ b/src/core/hle/kernel/k_page_table_base.cpp @@ -184,7 +184,8 @@ Result KPageTableBase::InitializeForProcess(Svc::CreateProcessFlag as_type, bool KMemoryManager::Pool pool, KProcessAddress code_address, size_t code_size, KSystemResource* system_resource, KResourceLimit* resource_limit, - Core::Memory::Memory& memory) { + Core::Memory::Memory& memory, + KProcessAddress aslr_space_start) { // Calculate region extents. const size_t as_width = GetAddressSpaceWidth(as_type); const KProcessAddress start = 0; @@ -225,7 +226,8 @@ Result KPageTableBase::InitializeForProcess(Svc::CreateProcessFlag as_type, bool heap_region_size = GetSpaceSize(KAddressSpaceInfo::Type::Heap); stack_region_size = GetSpaceSize(KAddressSpaceInfo::Type::Stack); kernel_map_region_size = GetSpaceSize(KAddressSpaceInfo::Type::MapSmall); - m_code_region_start = GetSpaceStart(KAddressSpaceInfo::Type::Map39Bit); + m_code_region_start = m_address_space_start + aslr_space_start + + GetSpaceStart(KAddressSpaceInfo::Type::Map39Bit); m_code_region_end = m_code_region_start + GetSpaceSize(KAddressSpaceInfo::Type::Map39Bit); m_alias_code_region_start = m_code_region_start; m_alias_code_region_end = m_code_region_end; |