From 8ecfbb3a8c3fdf4a562102313d0e71b6aaa659e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20S=C5=82abo=C5=84?= Date: Thu, 14 Aug 2025 17:40:52 +0200 Subject: [PATCH] [SETUPLIB] Fix system partition selection DPRINTs (#8336) Some partition entries (such as those added by the CreateInsertBlankRegion function) may not have their Volume member allocated. This fixes the USETUP crash when such partitions are handled. --- base/setup/lib/utils/partlist.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/base/setup/lib/utils/partlist.c b/base/setup/lib/utils/partlist.c index 59ad7843c46..09b2d81d3bf 100644 --- a/base/setup/lib/utils/partlist.c +++ b/base/setup/lib/utils/partlist.c @@ -3438,7 +3438,8 @@ UseAlternativeDisk: DPRINT1("Use new first active system partition %lu in disk %lu, drive letter %C\n", CandidatePartition->PartitionNumber, CandidatePartition->DiskEntry->DiskNumber, - !CandidatePartition->Volume->Info.DriveLetter ? L'-' : CandidatePartition->Volume->Info.DriveLetter); + (!CandidatePartition->Volume || !CandidatePartition->Volume->Info.DriveLetter) ? + L'-' : CandidatePartition->Volume->Info.DriveLetter); /* Return the candidate system partition */ return CandidatePartition; @@ -3478,7 +3479,8 @@ UseAlternativeDisk: DPRINT1("Use first active system partition %lu in disk %lu, drive letter %C\n", CandidatePartition->PartitionNumber, CandidatePartition->DiskEntry->DiskNumber, - !CandidatePartition->Volume->Info.DriveLetter ? L'-' : CandidatePartition->Volume->Info.DriveLetter); + (!CandidatePartition->Volume || !CandidatePartition->Volume->Info.DriveLetter) ? + L'-' : CandidatePartition->Volume->Info.DriveLetter); /* Return the candidate system partition */ return CandidatePartition; @@ -3516,7 +3518,8 @@ UseAlternativePartition: DPRINT1("Use alternative active system partition %lu in disk %lu, drive letter %C\n", CandidatePartition->PartitionNumber, CandidatePartition->DiskEntry->DiskNumber, - !CandidatePartition->Volume->Info.DriveLetter ? L'-' : CandidatePartition->Volume->Info.DriveLetter); + (!CandidatePartition->Volume || !CandidatePartition->Volume->Info.DriveLetter) ? + L'-' : CandidatePartition->Volume->Info.DriveLetter); /* Return the candidate system partition */ return CandidatePartition;