From 6aeb60f6e41ab8e130e28157f9878a1eaab9bc96 Mon Sep 17 00:00:00 2001 From: Jakub Jermar Date: Fri, 17 May 2019 00:08:53 +0200 Subject: [PATCH] Fix pos to be an offset of entry pos needs to also include the first 8 bytes of multiboot2_tag_t so that it represents an offset from the beginning of the tag and points to entry. --- kernel/genarch/src/multiboot/multiboot2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/genarch/src/multiboot/multiboot2.c b/kernel/genarch/src/multiboot/multiboot2.c index 8c0f06e51..450ac284b 100644 --- a/kernel/genarch/src/multiboot/multiboot2.c +++ b/kernel/genarch/src/multiboot/multiboot2.c @@ -64,7 +64,7 @@ static void multiboot2_memmap(uint32_t length, const multiboot2_memmap_t *memmap { multiboot2_memmap_entry_t *entry = (multiboot2_memmap_entry_t *) ((uintptr_t) memmap + sizeof(*memmap)); - uint32_t pos = sizeof(*memmap); + uint32_t pos = offsetof(multiboot2_tag_t, memmap) + sizeof(*memmap); while ((pos < length) && (e820counter < MEMMAP_E820_MAX_RECORDS)) { e820table[e820counter].base_address = entry->base_address; -- 2.11.4.GIT