diff --git a/src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.cs b/src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.cs index 4e24909d48af77..12f53f0ecf3ee8 100644 --- a/src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.cs +++ b/src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.cs @@ -117,6 +117,8 @@ public override int Read(Span buffer) OperationStatus lastResult; while (!TryDecompress(buffer, out bytesWritten, out lastResult)) { + _buffer.EnsureAvailableSpace(1); + int bytesRead = _stream.Read(_buffer.AvailableSpan); if (bytesRead <= 0) { @@ -192,6 +194,8 @@ public override async ValueTask ReadAsync(Memory buffer, Cancellation OperationStatus lastResult; while (!TryDecompress(buffer.Span, out bytesWritten, out lastResult)) { + _buffer.EnsureAvailableSpace(1); + int bytesRead = await _stream.ReadAsync(_buffer.AvailableMemory, cancellationToken).ConfigureAwait(false); if (bytesRead <= 0) {