:: commit 11d345ebb0f30850b49c4fcaf776525d53314037

mintsuki <mintsuki@protonmail.com> — 2024-07-27 06:32

parents: cf30cb1b39

protos/limine: Limit KASLR wiggle room to a quarter instead of half of the higher half

diff --git a/common/protos/limine.c b/common/protos/limine.c
index 6433021e..8a95e357 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -235,8 +235,8 @@ static void **requests;
 static void set_paging_mode(int paging_mode, bool kaslr) {
     direct_map_offset = paging_mode_higher_half(paging_mode);
     if (kaslr) {
-        // Half of the higher half of wiggle room for KASLR, align to 1GiB steps.
-        uint64_t mask = ((uint64_t)1 << (paging_mode_va_bits(paging_mode) - 2)) - 1;
+        // A quarter of the higher half of wiggle room for KASLR, align to 1GiB steps.
+        uint64_t mask = ((uint64_t)1 << (paging_mode_va_bits(paging_mode) - 3)) - 1;
         direct_map_offset += (rand64() & ~((uint64_t)0x40000000 - 1)) & mask;
     }
 }
tab: 248 wrap: offon