protos/multiboot2: Bound information_request tag size to header area

This commit is contained in:
Mintsuki
2026-04-18 22:17:54 +02:00
parent de17e9448e
commit 015d01d4be

View File

@@ -164,6 +164,10 @@ noreturn void multiboot2_load(char *config, char* cmdline) {
if (request->size < sizeof(struct multiboot_header_tag_information_request)) {
panic(true, "multiboot2: Invalid information request tag size");
}
size_t tag_remaining = (uintptr_t)header + header->header_length - (uintptr_t)tag;
if (request->size > tag_remaining) {
panic(true, "multiboot2: Information request tag exceeds header bounds");
}
uint32_t size = (request->size - sizeof(struct multiboot_header_tag_information_request)) / sizeof(uint32_t);
for (uint32_t i = 0; i < size; i++) {