From 9bd94e8ea76c0475dde891779b033df98b8b10d7 Mon Sep 17 00:00:00 2001 From: Carl Johnsen Date: Sun, 15 Feb 2026 10:03:46 +0100 Subject: [PATCH] Reuse already read MBR bytes --- proprietary/DiskImage/Partition/PartitionTableFactory.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/proprietary/DiskImage/Partition/PartitionTableFactory.cs b/proprietary/DiskImage/Partition/PartitionTableFactory.cs index 73f081ff5..81d862363 100644 --- a/proprietary/DiskImage/Partition/PartitionTableFactory.cs +++ b/proprietary/DiskImage/Partition/PartitionTableFactory.cs @@ -182,7 +182,11 @@ public static class PartitionTableFactory private static async Task CreateMBRAsync(IRawDisk disk, byte[] mbrBytes, CancellationToken cancellationToken) { var mbr = new MBR(disk); - await mbr.ParseAsync(disk, cancellationToken).ConfigureAwait(false); + // Use the already read bytes to avoid race conditions and redundant reads + if (!await mbr.ParseAsync(mbrBytes, disk.SectorSize, cancellationToken).ConfigureAwait(false)) + { + throw new InvalidOperationException("Failed to parse MBR from validated bytes."); + } return mbr; }