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

@@ -52,7 +52,7 @@ public sealed partial class DriDiskCopy
var buffer = new byte[Marshal.SizeOf<Footer>()];
stream.Seek(-buffer.Length, SeekOrigin.End);
stream.Read(buffer, 0, buffer.Length);
stream.EnsureRead(buffer, 0, buffer.Length);
_footer = Marshal.ByteArrayToStructureLittleEndian<Footer>(buffer);
@@ -142,8 +142,8 @@ public sealed partial class DriDiskCopy
buffer = new byte[length * _imageInfo.SectorSize];
Stream stream = _driImageFilter.GetDataForkStream();
stream.Seek((long)(sectorAddress * _imageInfo.SectorSize), SeekOrigin.Begin);
stream.Read(buffer, 0, (int)(length * _imageInfo.SectorSize));
stream.Seek((long)(sectorAddress * _imageInfo.SectorSize), SeekOrigin.Begin);
stream.EnsureRead(buffer, 0, (int)(length * _imageInfo.SectorSize));
return ErrorNumber.NoError;
}