diff --git a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/OSFileStreamStrategy.cs b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/OSFileStreamStrategy.cs index 0386dfa78d5631..5197a4b3d048d8 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/OSFileStreamStrategy.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/OSFileStreamStrategy.cs @@ -294,7 +294,7 @@ public sealed override Task WriteAsync(byte[] buffer, int offset, int count, Can public sealed override ValueTask WriteAsync(ReadOnlyMemory source, CancellationToken cancellationToken) { - long writeOffset = CanSeek ? Interlocked.Add(ref _filePosition, source.Length) - source.Length : -1; + long writeOffset = CanSeek ? Interlocked.Add(ref _filePosition, source.Length) - source.Length : 0; return RandomAccess.WriteAtOffsetAsync(_fileHandle, source, writeOffset, cancellationToken, this); } @@ -311,7 +311,7 @@ public sealed override ValueTask ReadAsync(Memory destination, Cancel { if (!CanSeek) { - return RandomAccess.ReadAtOffsetAsync(_fileHandle, destination, fileOffset: -1, cancellationToken); + return RandomAccess.ReadAtOffsetAsync(_fileHandle, destination, fileOffset: 0, cancellationToken); } if (LengthCachingSupported && _length >= 0 && Volatile.Read(ref _filePosition) >= _length)