dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.98k stars 4.66k forks source link

DeflateStream fails to return final byte of decompressed data #20042

Closed ddrinka closed 4 years ago

ddrinka commented 7 years ago

When decompressing certain data, reading from a DeflateStream byte-by-byte fails to return the final byte, whereas reading two or more bytes at once succeeds.

Here is a repro: https://github.com/ddrinka/DeflateStreamBug

xUnit.net .NET CLI test runner (64-bit .NET Core win10-x64)
  Discovering: DeflateStreamBug.Test
  Discovered:  DeflateStreamBug.Test
  Starting:    DeflateStreamBug.Test
    DeflateStreamBug.Test.DeflateStream_Test.Read_CompressedData_Last1 [FAIL]
      Assert.Equal() Failure
      Expected: 1
      Actual:   0
      Stack Trace:
        C:\src\DeflateStreamBug\test\DeflateStreamBug.Test\DeflateStream_Test.cs(36,0): at DeflateStreamBug.Test.DeflateStream_Test.Read_CompressedData_Last1()
  Finished:    DeflateStreamBug.Test

This issue appears resolved in netcoreapp1.1, but I have verified it exists in 1.0.0-1.0.3. Net452 does not exhibit the issue.

ianhays commented 7 years ago

Looks like a duplicate of https://github.com/dotnet/corefx/issues/11161 which was resolved in https://github.com/dotnet/corefx/pull/11235 back in August 2016.

Closing this issue as duplicate/resolved.

karelz commented 7 years ago

FYI: It has been fixed in 1.1.