From b6f258cefd0e968b2c6178c685bac47a6c1a09bd Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Fri, 10 Apr 2009 13:27:09 +0000 Subject: [PATCH] - Fix a couple more assumptions about first primary partition being the active one. - If no active partitions found, set active primary partition number to 0. This fixes uninitialized variable usage, which revealed itself as a bug with unattended setup. - Silence a DPRINT1. svn path=/trunk/; revision=40438 --- reactos/base/setup/usetup/interface/usetup.c | 6 ++++-- reactos/base/setup/usetup/partlist.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/reactos/base/setup/usetup/interface/usetup.c b/reactos/base/setup/usetup/interface/usetup.c index 5574cee4009..a7d7d67893b 100644 --- a/reactos/base/setup/usetup/interface/usetup.c +++ b/reactos/base/setup/usetup/interface/usetup.c @@ -3345,7 +3345,8 @@ BootLoaderPage(PINPUT_RECORD Ir) CONSOLE_SetStatusText(MUIGetString(STRING_PLEASEWAIT)); - PartitionType = PartitionList->ActiveBootPartition->PartInfo[0].PartitionType; + PartitionType = PartitionList->ActiveBootPartition-> + PartInfo[PartitionList->ActiveBootPartitionNumber].PartitionType; if (PartitionType == PARTITION_ENTRY_UNUSED) { @@ -3518,7 +3519,8 @@ BootLoaderHarddiskPage(PINPUT_RECORD Ir) UCHAR PartitionType; NTSTATUS Status; - PartitionType = PartitionList->ActiveBootPartition->PartInfo[0].PartitionType; + PartitionType = PartitionList->ActiveBootPartition-> + PartInfo[PartitionList->ActiveBootPartitionNumber].PartitionType; if ((PartitionType == PARTITION_FAT_12) || (PartitionType == PARTITION_FAT_16) || (PartitionType == PARTITION_HUGE) || diff --git a/reactos/base/setup/usetup/partlist.c b/reactos/base/setup/usetup/partlist.c index 352886270ca..e2cc3c1354a 100644 --- a/reactos/base/setup/usetup/partlist.c +++ b/reactos/base/setup/usetup/partlist.c @@ -2361,6 +2361,7 @@ CheckActiveBootPartition (PPARTLIST List) /* FIXME: Might be incorrect if partitions were created by Linux FDISK */ List->ActiveBootDisk = DiskEntry; List->ActiveBootPartition = PartEntry; + List->ActiveBootPartitionNumber = 0; return; } @@ -2391,7 +2392,7 @@ CheckActiveBootPartition (PPARTLIST List) List->ActiveBootPartition = PartEntry; List->ActiveBootPartitionNumber = i; - DPRINT1("Found bootable partition disk %d, drive letter %c\n", + DPRINT("Found bootable partition disk %d, drive letter %c\n", DiskEntry->BiosDiskNumber, PartEntry->DriveLetter[i]); break;