Use Stream extension to ensure read operations return the requested number of bytes (unless EOF arrives first).

This commit is contained in:
2022-11-14 09:43:16 +00:00
parent f90cc6593f
commit 0eb589d785
178 changed files with 862 additions and 780 deletions

View File

@@ -50,11 +50,11 @@ public sealed partial class VMware
{
stream.Seek(0, SeekOrigin.Begin);
var vmEHdrB = new byte[Marshal.SizeOf<ExtentHeader>()];
stream.Read(vmEHdrB, 0, Marshal.SizeOf<ExtentHeader>());
stream.EnsureRead(vmEHdrB, 0, Marshal.SizeOf<ExtentHeader>());
_vmEHdr = Marshal.ByteArrayToStructureLittleEndian<ExtentHeader>(vmEHdrB);
stream.Seek(0, SeekOrigin.Begin);
stream.Read(ddfMagic, 0, 0x15);
stream.EnsureRead(ddfMagic, 0, 0x15);
_vmCHdr = new CowHeader();
@@ -64,7 +64,7 @@ public sealed partial class VMware
stream.Seek(0, SeekOrigin.Begin);
var vmCHdrB = new byte[Marshal.SizeOf<CowHeader>()];
stream.Read(vmCHdrB, 0, Marshal.SizeOf<CowHeader>());
stream.EnsureRead(vmCHdrB, 0, Marshal.SizeOf<CowHeader>());
_vmCHdr = Marshal.ByteArrayToStructureLittleEndian<CowHeader>(vmCHdrB);
return _ddfMagicBytes.SequenceEqual(ddfMagic) || _vmEHdr.magic == VMWARE_EXTENT_MAGIC ||
@@ -72,7 +72,7 @@ public sealed partial class VMware
}
stream.Seek(0, SeekOrigin.Begin);
stream.Read(ddfMagic, 0, 0x15);
stream.EnsureRead(ddfMagic, 0, 0x15);
return _ddfMagicBytes.SequenceEqual(ddfMagic);
}