From f26ba91386e4561db1fe21299f6c77ec8b239397 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Mon, 3 Oct 2016 13:32:53 +0100 Subject: [PATCH 1/2] Fix null password on ReaderFactory. Fix null options on SevenZipArchive --- src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs | 4 ++-- src/SharpCompress/Common/Volume.cs | 4 ++-- src/SharpCompress/Readers/AbstractReader.cs | 2 +- src/SharpCompress/Readers/ReaderFactory.cs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs index 841151445..e8aac7b75 100644 --- a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs +++ b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs @@ -30,7 +30,7 @@ public static SevenZipArchive Open(string filePath, ReaderOptions readerOptions /// /// /// - public static SevenZipArchive Open(FileInfo fileInfo, ReaderOptions readerOptions) + public static SevenZipArchive Open(FileInfo fileInfo, ReaderOptions readerOptions = null) { fileInfo.CheckNotNull("fileInfo"); return new SevenZipArchive(fileInfo, readerOptions ?? new ReaderOptions()); @@ -44,7 +44,7 @@ public static SevenZipArchive Open(FileInfo fileInfo, ReaderOptions readerOption public static SevenZipArchive Open(Stream stream, ReaderOptions readerOptions = null) { stream.CheckNotNull("stream"); - return new SevenZipArchive(stream, readerOptions); + return new SevenZipArchive(stream, readerOptions ?? new ReaderOptions()); } #if !NO_FILE diff --git a/src/SharpCompress/Common/Volume.cs b/src/SharpCompress/Common/Volume.cs index 39d00621c..d5921ab78 100644 --- a/src/SharpCompress/Common/Volume.cs +++ b/src/SharpCompress/Common/Volume.cs @@ -8,10 +8,10 @@ public abstract class Volume : IVolume { private readonly Stream actualStream; - internal Volume(Stream stream, ReaderOptions readerFactoryOptions) + internal Volume(Stream stream, ReaderOptions readerOptions) { actualStream = stream; - ReaderOptions = readerFactoryOptions; + ReaderOptions = readerOptions; } internal Stream Stream { get { return new NonDisposingStream(actualStream); } } diff --git a/src/SharpCompress/Readers/AbstractReader.cs b/src/SharpCompress/Readers/AbstractReader.cs index 810d7c5e1..380e8df5a 100644 --- a/src/SharpCompress/Readers/AbstractReader.cs +++ b/src/SharpCompress/Readers/AbstractReader.cs @@ -29,7 +29,7 @@ internal AbstractReader(ReaderOptions options, ArchiveType archiveType) Options = options; } - internal ReaderOptions Options { get; private set; } + internal ReaderOptions Options { get; } public ArchiveType ArchiveType { get; } diff --git a/src/SharpCompress/Readers/ReaderFactory.cs b/src/SharpCompress/Readers/ReaderFactory.cs index 9149b8b06..a1a931f41 100644 --- a/src/SharpCompress/Readers/ReaderFactory.cs +++ b/src/SharpCompress/Readers/ReaderFactory.cs @@ -33,7 +33,7 @@ public static IReader Open(Stream stream, ReaderOptions options = null) }; RewindableStream rewindableStream = new RewindableStream(stream); rewindableStream.StartRecording(); - if (ZipArchive.IsZipFile(rewindableStream, null)) + if (ZipArchive.IsZipFile(rewindableStream, options.Password)) { rewindableStream.Rewind(true); return ZipReader.Open(rewindableStream, options); From d7e29f7c4d8e791ac58919cfb1238841dcb61f89 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Mon, 3 Oct 2016 13:37:04 +0100 Subject: [PATCH 2/2] Fix occasionally failing test --- test/SharpCompress.Test/Zip/ZipReaderTests.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/SharpCompress.Test/Zip/ZipReaderTests.cs b/test/SharpCompress.Test/Zip/ZipReaderTests.cs index 0927a31bd..115138eb0 100644 --- a/test/SharpCompress.Test/Zip/ZipReaderTests.cs +++ b/test/SharpCompress.Test/Zip/ZipReaderTests.cs @@ -228,6 +228,8 @@ public override bool CanSeek [Fact] public void TestSharpCompressWithEmptyStream() { + ResetScratch(); + MemoryStream stream = new NonSeekableMemoryStream(); using (IWriter zipWriter = WriterFactory.Open(stream, ArchiveType.Zip, CompressionType.Deflate)) @@ -250,7 +252,9 @@ public void TestSharpCompressWithEmptyStream() byte[] buf = new byte[bufSize]; int bytesRead = 0; while ((bytesRead = entry.Read(buf, 0, bufSize)) > 0) + { tempStream.Write(buf, 0, bytesRead); + } } } }