protos/limine: Fix request scan loop bound to not read past image_size_before_bss

This commit is contained in:
Mintsuki
2026-04-14 02:04:27 +02:00
parent 48cc492436
commit 3042d4fa74

View File

@@ -546,7 +546,7 @@ noreturn void limine_load(char *config, char *cmdline) {
bool base_revision_found = false;
uint64_t *base_rev_p1_ptr = NULL;
uint64_t *base_rev_p2_ptr = NULL;
for (size_t i = 0; i < ALIGN_DOWN(image_size_before_bss, 8); i += 8) {
for (size_t i = 0; i + 32 <= image_size_before_bss; i += 8) {
uint64_t *p = (void *)(uintptr_t)physical_base + i;
// Check if start marker hit
@@ -609,7 +609,7 @@ noreturn void limine_load(char *config, char *cmdline) {
}
} else {
uint64_t common_magic[2] = { LIMINE_COMMON_MAGIC };
for (size_t i = 0; i < ALIGN_DOWN(image_size_before_bss, 8); i += 8) {
for (size_t i = 0; i + 32 <= image_size_before_bss; i += 8) {
uint64_t *p = (void *)(uintptr_t)physical_base + i;
// Check if start marker hit