[NTOS:IO] IopCreateArcNamesDisk(): Fix the ArcName link creation condition check.

The bug was introduced in commit 6d0861e9e (r49131).
This commit is contained in:
Hermès Bélusca-Maïto 2024-06-11 22:21:49 +02:00
parent 5e3f3f59df
commit 3fe12f1a7c
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -703,16 +703,16 @@ IopCreateArcNamesDisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
ARC_DISK_SIGNATURE,
ListEntry);
/* If they match, i.e.
* - There's only one disk for both BIOS and detected/enabled
* - Signatures are matching
* - Checksums are matching
* - This is MBR
/*
* If this is the only MBR disk in the ARC list and detected
* in the device tree, just go ahead and create the ArcName link.
* Otherwise, check whether the signatures and checksums match
* before creating the ArcName link.
*/
if (((SingleDisk && DiskCount == 1) ||
if ((SingleDisk && (DiskCount == 1) &&
(DriveLayout->PartitionStyle == PARTITION_STYLE_MBR)) ||
(IopVerifyDiskSignature(DriveLayout, ArcDiskSignature, &Signature) &&
(ArcDiskSignature->CheckSum + CheckSum == 0))) &&
(DriveLayout->PartitionStyle == PARTITION_STYLE_MBR))
(ArcDiskSignature->CheckSum + CheckSum == 0)))
{
/* Create device name */
sprintf(Buffer, "\\Device\\Harddisk%lu\\Partition0",