Skip to content

Exception when reading an encrypted zip file containing a folder: "Stored, but compressed != uncompressed" #885

@bhaeussermann

Description

@bhaeussermann

Describe the bug

When I use a ZipInputStream to read a zip file that is encrypted and contains folder entries, the following exception occurs:

ICSharpCode.SharpZipLib.Zip.ZipException: 'Stored, but compressed != uncompressed'

Here is the zip file that is causing the exception. It was created using SharpZipLib and can be opened fine using other zip applications or libraries:
archive.zip

In the code below, it fails when calling GetNextEntry():

using var archive = new ZipInputStream(File.OpenRead(archiveFilePath))
{
    Password = "123456"
};
ZipEntry entry;
while ((entry = archive.GetNextEntry()) != null)
{
    Console.WriteLine(entry.Name);
}

Reproduction Code

https://dotnetfiddle.net/fXUXgR

Steps to reproduce

  1. Download the attached zip file and edit the provided code to point to that file.
  2. Run the code.

Expected behavior

The program must list the entries in the zip file without throwing an exception.

Operating System

Windows

Framework Version

.NET 7

Tags

ZIP

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzipRelated to ZIP file format

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions