:: commit 301aa7774d2f9af10639d1d538602536ef11e0df

Mintsuki <mintsuki@protonmail.com> — 2026-04-17 00:20

parents: e0b5fd0d21

protos/limine: Validate .limine_reqs pointers lie within kernel image

diff --git a/common/protos/limine.c b/common/protos/limine.c
index c56680f8..aced5f8d 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -604,6 +604,10 @@ noreturn void limine_load(char *config, char *cmdline) {
             if (limine_reqs[i] == 0) {
                 break;
             }
+            if (limine_reqs[i] < virtual_base
+             || limine_reqs[i] - virtual_base >= image_size_before_bss) {
+                panic(true, "limine: .limine_reqs entry outside kernel image");
+            }
             requests[i] = (void *)(uintptr_t)((limine_reqs[i] - virtual_base) + physical_base);
             requests_count++;
         }
tab: 248 wrap: offon