From: Joao Matos Date: Mon, 22 Feb 2016 14:53:09 +0000 (+0000) Subject: [System.IO.Compression] Lower minimum version in ZIP headers for compatibility. X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=77b034cbe78bfccfe4c1995152bd5562a1d69ef5;p=mono.git [System.IO.Compression] Lower minimum version in ZIP headers for compatibility. This fixes compatibility with tools like MS Excel, file tool, and others that do not know how to recognize newer ZIP version formats. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=33553. --- diff --git a/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipCentralDirectoryEntry.cs b/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipCentralDirectoryEntry.cs index da5d94f4104..5060897cb9a 100644 --- a/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipCentralDirectoryEntry.cs +++ b/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipCentralDirectoryEntry.cs @@ -22,7 +22,7 @@ namespace SharpCompress.Writer.Zip byte[] encodedFilename = Encoding.UTF8.GetBytes(FileName); byte[] encodedComment = Encoding.UTF8.GetBytes(Comment); - outputStream.Write(new byte[] {80, 75, 1, 2, 0x3F, 0, 0x0A, 0}, 0, 8); + outputStream.Write(new byte[] {80, 75, 1, 2, 0x14, 0, 0x0A, 0}, 0, 8); HeaderFlags flags = HeaderFlags.UTF8; if (!outputStream.CanSeek) { diff --git a/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipWriter.cs b/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipWriter.cs index 70a2eb7d8c4..846d78c8e4f 100644 --- a/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipWriter.cs +++ b/mcs/class/System.IO.Compression/SharpCompress/Writer/Zip/ZipWriter.cs @@ -142,7 +142,7 @@ namespace SharpCompress.Writer.Zip byte[] encodedFilename = encoding.GetBytes(filename); OutputStream.Write(BitConverter.GetBytes(ZipHeaderFactory.ENTRY_HEADER_BYTES), 0, 4); - OutputStream.Write(new byte[] {63, 0}, 0, 2); //version + OutputStream.Write(new byte[] {20, 0}, 0, 2); //version HeaderFlags flags = encoding == Encoding.UTF8 ? HeaderFlags.UTF8 : (HeaderFlags)0; if (!OutputStream.CanSeek) {