host/limine: Guard secondary GPT nuke against alternate_lba underflow
diff --git a/host/limine.c b/host/limine.c
index 4700f3d5..6ae3104b 100644
--- a/host/limine.c
+++ b/host/limine.c
@@ -883,8 +883,11 @@ static int bios_install(int argc, char *argv[]) {
}
// ... nuke secondary GPT.
- for (size_t i = 0; i < 33; i++) {
- device_write(empty_lba, ((ENDSWAP(gpt_header.alternate_lba) - 32) + i) * lb_size, lb_size);
+ uint64_t alt_lba = ENDSWAP(gpt_header.alternate_lba);
+ if (alt_lba >= 32) {
+ for (size_t i = 0; i < 33; i++) {
+ device_write(empty_lba, (alt_lba - 32 + i) * lb_size, lb_size);
+ }
}
free(empty_lba);
