From 77b034cbe78bfccfe4c1995152bd5562a1d69ef5 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Mon, 22 Feb 2016 14:53:09 +0000 Subject: [PATCH] [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. --- .../SharpCompress/Writer/Zip/ZipCentralDirectoryEntry.cs | 2 +- .../System.IO.Compression/SharpCompress/Writer/Zip/ZipWriter.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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) { -- 2.25.1