aboutsummaryrefslogtreecommitdiff
path: root/src/core/loader/kip.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/loader/kip.cpp')
-rw-r--r--src/core/loader/kip.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/core/loader/kip.cpp b/src/core/loader/kip.cpp
index 81449ac8b8..978ffed2b9 100644
--- a/src/core/loader/kip.cpp
+++ b/src/core/loader/kip.cpp
@@ -89,9 +89,8 @@ AppLoader::LoadResult AppLoader_KIP::Load(Kernel::KProcess& process,
codeset.DataSegment().size += kip->GetBSSSize();
// TODO: this is bad form of ASLR, it sucks
- size_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue()
- ? ::Settings::values.rng_seed.GetValue()
- : Common::Random::Random64(0)) * 0x734287f27) & 0xfff000;
+ std::uintptr_t aslr_offset = ((::Settings::values.rng_seed_enabled.GetValue()
+ ? ::Settings::values.rng_seed.GetValue() : Common::Random::Random64(0)) << 12) & 0xfff000;
// Setup the process code layout
if (process.LoadFromMetadata(FileSys::ProgramMetadata::GetDefault(), codeset.memory.size(), 0, aslr_offset, false).IsError()) {