protos/limine: Fix request scan loop bound to not read past image_size_before_bss
diff --git a/common/protos/limine.c b/common/protos/limine.c
index 23349b87..e491fe13 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -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
