C#


CSHARP.STRUCT.ARCHIVE.EZF : Empty zip File Archived (C#)

Summary

An empty zip entry is added to a zip file.

The programmatic construction of zip or other archives might be incorrect, when for instance empty entries get added to an archive. This checker looks for inconsistent operation in the creation of such archives.

Properties

Class Name Empty zip File Archived (C#)
Significance reliability
Mnemonic CSHARP.STRUCT.ARCHIVE.EZF
Categories
CWE CWE:909 Missing Initialization of Resource
Availability Available for C# only.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Empty zip File Archived (C#)"

Example

using System.IO;
using System.IO.Compression;

namespace DocumentationExamples
{

    class Zip
    {
        static void Main(string[] args)
        {
            using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                {
                    ZipArchiveEntry emptyEntry = archive.CreateEntry("Empty.txt");    // "Empty zip File Archived (C#)" warning issued here
                                                                                      // - no contents written to this zip archive
                    ZipArchiveEntry emptyEntry1 = archive.CreateEntry("Empty1.txt");  // "Empty zip File Archived (C#)" warning issued here
                                                                                      // - stream writer is then opened, but no contents written 
                    using (StreamWriter writer = new StreamWriter(emptyEntry1.Open()))
                    {
                    }
                    ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");                      // ok: contents subsequently written
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                        writer.WriteLine("Information about this package.");
                        writer.WriteLine("========================");
                    }
                }
            }
        }
    }
    
}

Resolution

Check if, for instance, empty entries are added to a jar or zip archive.

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.