From 7cb24713ab0484b027dd85b5b3f07227c1c6f0d1 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Mon, 30 Nov 2020 20:47:00 -0800 Subject: [PATCH] kldr: update for 11.0.0 --- mesosphere/kernel_ldr/source/kern_init_loader.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mesosphere/kernel_ldr/source/kern_init_loader.cpp b/mesosphere/kernel_ldr/source/kern_init_loader.cpp index 7bd7667e5..3e607d737 100644 --- a/mesosphere/kernel_ldr/source/kern_init_loader.cpp +++ b/mesosphere/kernel_ldr/source/kern_init_loader.cpp @@ -207,9 +207,9 @@ namespace ams::kern::init::loader { /* Repeatedly generate a random virtual address until we get one that's unmapped in the destination page table. */ while (true) { - const KVirtualAddress random_kaslr_slide = KSystemControl::Init::GenerateRandomRange(KernelBaseRangeMin, KernelBaseRangeEnd); - const KVirtualAddress kernel_region_start = util::AlignDown(GetInteger(random_kaslr_slide), KernelBaseAlignment); - const KVirtualAddress kernel_region_end = util::AlignUp(GetInteger(kernel_region_start) + kernel_offset + kernel_size, KernelBaseAlignment); + const uintptr_t random_kaslr_slide = KSystemControl::Init::GenerateRandomRange(KernelBaseRangeMin / KernelBaseAlignment, KernelBaseRangeEnd / KernelBaseAlignment); + const KVirtualAddress kernel_region_start = random_kaslr_slide * KernelBaseAlignment; + const KVirtualAddress kernel_region_end = kernel_region_start + util::AlignUp(kernel_offset + kernel_size, KernelBaseAlignment); const size_t kernel_region_size = GetInteger(kernel_region_end) - GetInteger(kernel_region_start); /* Make sure the region has not overflowed */