Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/Archive/Zip/ZipIn.cpp')
-rwxr-xr-xCPP/7zip/Archive/Zip/ZipIn.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/CPP/7zip/Archive/Zip/ZipIn.cpp b/CPP/7zip/Archive/Zip/ZipIn.cpp
index 7c5ecbfb..bb45d1d1 100755
--- a/CPP/7zip/Archive/Zip/ZipIn.cpp
+++ b/CPP/7zip/Archive/Zip/ZipIn.cpp
@@ -341,11 +341,14 @@ HRESULT CInArchive::ReadLocalItemAfterCdItem(CItemEx &item)
RINOK(ReadLocalItem(localItem));
if (item.Flags != localItem.Flags)
{
- if ((item.CompressionMethod != NFileHeader::NCompressionMethod::kDeflated ||
- (item.Flags & 0x7FFC) != (localItem.Flags & 0x7FFC)) &&
- ((item.CompressionMethod != NFileHeader::NCompressionMethod::kStored ||
- (item.Flags & 0x7FFF) != (localItem.Flags & 0x7FFF))
- ))
+ if (
+ (item.CompressionMethod != NFileHeader::NCompressionMethod::kDeflated ||
+ (item.Flags & 0x7FF9) != (localItem.Flags & 0x7FF9)) &&
+ (item.CompressionMethod != NFileHeader::NCompressionMethod::kStored ||
+ (item.Flags & 0x7FFF) != (localItem.Flags & 0x7FFF)) &&
+ (item.CompressionMethod != NFileHeader::NCompressionMethod::kImploded ||
+ (item.Flags & 0x7FFF) != (localItem.Flags & 0x7FFF))
+ )
return S_FALSE;
}