:: commit a28a8ec0a25b31e34ae4a3d840dccb74598b0946

Mintsuki <mintsuki@protonmail.com> — 2026-04-01 20:50

parents: 198bd3b8b0

protos/linux_x86: Use uint64_t for initrd_addr_max to prevent 32-bit wrap

diff --git a/common/protos/linux_x86.c b/common/protos/linux_x86.c
index 86655b0b..adc64c10 100644
--- a/common/protos/linux_x86.c
+++ b/common/protos/linux_x86.c
@@ -448,12 +448,12 @@ noreturn void linux_load(char *config, char *cmdline) {
         modules[i] = module;
     }
 
-    uintptr_t modules_mem_base;
+    uint64_t modules_mem_base;
 
     if (setup_header->version <= 0x202 || setup_header->initrd_addr_max == 0) {
         modules_mem_base = 0x38000000;
     } else {
-        modules_mem_base = (uintptr_t)setup_header->initrd_addr_max + 1;
+        modules_mem_base = (uint64_t)setup_header->initrd_addr_max + 1;
     }
 
     if (size_of_all_modules > modules_mem_base) {
tab: 248 wrap: offon