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

This commit is contained in:
Mintsuki
2026-04-17 02:20:46 +02:00
parent e0b5fd0d21
commit 301aa7774d

View File

@@ -604,6 +604,10 @@ noreturn void limine_load(char *config, char *cmdline) {
if (limine_reqs[i] == 0) { if (limine_reqs[i] == 0) {
break; 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[i] = (void *)(uintptr_t)((limine_reqs[i] - virtual_base) + physical_base);
requests_count++; requests_count++;
} }