:: commit 0b0794972caa314cc35cf17541251db5ea57e9b5

Mintsuki <mintsuki@protonmail.com> — 2026-02-09 06:39

parents: 879cfbfd68

drivers/disk: Move BlockSize and LastBlock validation before volume allocation

diff --git a/common/drivers/disk.s2.c b/common/drivers/disk.s2.c
index dd84bb4c..d385af13 100644
--- a/common/drivers/disk.s2.c
+++ b/common/drivers/disk.s2.c
@@ -789,6 +789,13 @@ fail:
             continue;
         }
 
+        if (drive->Media->BlockSize == 0) {
+            continue;
+        }
+        if (drive->Media->LastBlock == UINT64_MAX) {
+            continue;
+        }
+
         struct volume *block = ext_mem_alloc(sizeof(struct volume));
 
         bool is_optical = is_efi_handle_optical(handles[i]) ||
@@ -805,14 +812,8 @@ fail:
         block->block_io = drive;
         block->partition = 0;
         block->sector_size = drive->Media->BlockSize;
-        if (block->sector_size == 0) {
-            continue;
-        }
         block->first_sect = 0;
         // Normalize sect_count to 512-byte sectors for consistency with partitions
-        if (drive->Media->LastBlock == UINT64_MAX) {
-            continue;
-        }
         block->sect_count = (drive->Media->LastBlock + 1) * (drive->Media->BlockSize / 512);
         block->max_partition = -1;
 
tab: 248 wrap: offon