diff --git a/src/Docker.DotNet/Microsoft.Net.Http.Client/ContentLengthReadStream.cs b/src/Docker.DotNet/Microsoft.Net.Http.Client/ContentLengthReadStream.cs index 46bf489c..d5ef952b 100644 --- a/src/Docker.DotNet/Microsoft.Net.Http.Client/ContentLengthReadStream.cs +++ b/src/Docker.DotNet/Microsoft.Net.Http.Client/ContentLengthReadStream.cs @@ -93,6 +93,12 @@ public override int Read(byte[] buffer, int offset, int count) { return 0; } + + if (_bytesRemaining == 0) + { + return 0; + } + int toRead = (int)Math.Min(count, _bytesRemaining); int read = _inner.Read(buffer, offset, toRead); UpdateBytesRemaining(read); @@ -106,6 +112,12 @@ public async override Task ReadAsync(byte[] buffer, int offset, int count, { return 0; } + + if (_bytesRemaining == 0) + { + return 0; + } + cancellationToken.ThrowIfCancellationRequested(); int toRead = (int)Math.Min(count, _bytesRemaining); int read = await _inner.ReadAsync(buffer, offset, toRead, cancellationToken);