protos/limine: Validate .limine_reqs pointers lie within kernel image
This commit is contained in:
@@ -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++;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user