:: commit 929f88a42bfe73280eab23f21f5fd02f4353ec04

mintsuki <mintsuki@protonmail.com> — 2024-08-10 11:19

parents: 3e4b9c11b8

protos/limine: Fix off-by-1 error in HHDM MAXPHYADDR bounds check

diff --git a/common/protos/limine.c b/common/protos/limine.c
index eaa62061..ee25bf91 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -570,7 +570,10 @@ noreturn void limine_load(char *config, char *cmdline) {
         maxphyaddr = eax & 0xff;
     }
 
-    if (hhdm_span_top >= (uint64_t)1 << maxphyaddr) {
+    if (maxphyaddr > 64) {
+        panic(true, "limine: MAXPHYADDR > 64");
+    }
+    if (maxphyaddr < 64 && hhdm_span_top > (uint64_t)1 << maxphyaddr) {
         panic(true, "limine: Top of HHDM exceeds maximum allowable MAXPHYADDR value");
     }
 #endif
tab: 248 wrap: offon