:: commit 26729177dfb4883f6e3dc9d2383ac07017311a91

Mintsuki <mintsuki@protonmail.com> — 2026-02-07 08:49

parents: bfd77df5c9

protos/multiboot2: Fix unsigned underflow in relocatable descent loop

diff --git a/common/protos/multiboot2.c b/common/protos/multiboot2.c
index ff42d7c1..cad1160d 100644
--- a/common/protos/multiboot2.c
+++ b/common/protos/multiboot2.c
@@ -404,10 +404,10 @@ noreturn void multiboot2_load(char *config, char* cmdline) {
                     goto reloc_fail;
                 }
             } else {
-                relocated_base -= reloc_tag.align;
-                if (relocated_base < reloc_tag.min_addr) {
+                if (relocated_base - reloc_tag.min_addr < reloc_tag.align) {
                     goto reloc_fail;
                 }
+                relocated_base -= reloc_tag.align;
             }
         }
 
tab: 248 wrap: offon