From 83f8ddcc5b2161e1e3c49666265257fca8aeb12c Mon Sep 17 00:00:00 2001 From: Igor Pavlov Date: Mon, 18 Apr 2011 00:00:00 +0000 Subject: 9.22 --- CPP/7zip/Archive/Zip/ZipAddCommon.cpp | 2 +- CPP/7zip/Archive/Zip/ZipCompressionMode.h | 2 ++ CPP/7zip/Archive/Zip/ZipHandlerOut.cpp | 4 +++- CPP/7zip/Archive/Zip/ZipUpdate.cpp | 12 ++++++------ 4 files changed, 12 insertions(+), 8 deletions(-) (limited to 'CPP/7zip/Archive/Zip') diff --git a/CPP/7zip/Archive/Zip/ZipAddCommon.cpp b/CPP/7zip/Archive/Zip/ZipAddCommon.cpp index da42f3bd..f77e4f23 100755 --- a/CPP/7zip/Archive/Zip/ZipAddCommon.cpp +++ b/CPP/7zip/Archive/Zip/ZipAddCommon.cpp @@ -292,7 +292,7 @@ HRESULT CAddCommon::Compress( else if (opRes.PackSize < opRes.UnpackSize) break; } - if (_options.IsAesMode) + if (_options.PasswordIsDefined && _options.IsAesMode) { RINOK(_filterAesSpec->WriteFooter(outStream)); RINOK(outStream->Seek(0, STREAM_SEEK_CUR, &opRes.PackSize)); diff --git a/CPP/7zip/Archive/Zip/ZipCompressionMode.h b/CPP/7zip/Archive/Zip/ZipCompressionMode.h index 5be33166..893daaab 100755 --- a/CPP/7zip/Archive/Zip/ZipCompressionMode.h +++ b/CPP/7zip/Archive/Zip/ZipCompressionMode.h @@ -48,6 +48,8 @@ struct CCompressionMethodMode: public CBaseProps UInt64 _dataSizeReduce; bool _dataSizeReduceDefined; + bool IsRealAesMode() const { return PasswordIsDefined && IsAesMode; } + CCompressionMethodMode(): PasswordIsDefined(false) { _dataSizeReduceDefined = false; diff --git a/CPP/7zip/Archive/Zip/ZipHandlerOut.cpp b/CPP/7zip/Archive/Zip/ZipHandlerOut.cpp index 427b0c31..dd1ca136 100755 --- a/CPP/7zip/Archive/Zip/ZipHandlerOut.cpp +++ b/CPP/7zip/Archive/Zip/ZipHandlerOut.cpp @@ -409,7 +409,9 @@ STDMETHODIMP CHandler::SetProperties(const wchar_t **names, const PROPVARIANT *v m_ForceLocal = false; } else - return _props.MethodInfo.ParseParamsFromPROPVARIANT(name, prop); + { + RINOK(_props.MethodInfo.ParseParamsFromPROPVARIANT(name, prop)); + } } return S_OK; } diff --git a/CPP/7zip/Archive/Zip/ZipUpdate.cpp b/CPP/7zip/Archive/Zip/ZipUpdate.cpp index 490d9e26..a91364be 100755 --- a/CPP/7zip/Archive/Zip/ZipUpdate.cpp +++ b/CPP/7zip/Archive/Zip/ZipUpdate.cpp @@ -389,7 +389,7 @@ static void WriteDirHeader(COutArchive &archive, const CCompressionMethodMode *o const CUpdateItem &ui, CItemEx &item) { SetFileHeader(archive, *options, ui, item); - archive.PrepareWriteCompressedData((UInt16)item.Name.Length(), ui.Size, options->IsAesMode); + archive.PrepareWriteCompressedData((UInt16)item.Name.Length(), ui.Size, options->IsRealAesMode()); archive.WriteLocalHeader(item); } @@ -448,14 +448,14 @@ static HRESULT Update2St( // file Size can be 64-bit !!! SetFileHeader(archive, *options, ui, item); - archive.PrepareWriteCompressedData((UInt16)item.Name.Length(), ui.Size, options->IsAesMode); + archive.PrepareWriteCompressedData((UInt16)item.Name.Length(), ui.Size, options->IsRealAesMode()); CCompressingResult compressingResult; CMyComPtr outStream; archive.CreateStreamForCompressing(&outStream); RINOK(compressor.Compress( EXTERNAL_CODECS_LOC_VARS fileInStream, outStream, progress, compressingResult)); - SetItemInfoFromCompressingResult(compressingResult, options->IsAesMode, options->AesKeyMode, item); + SetItemInfoFromCompressingResult(compressingResult, options->IsRealAesMode(), options->AesKeyMode, item); archive.WriteLocalHeader(item); RINOK(updateCallback->SetOperationResult(NArchive::NUpdate::NOperationResult::kOK)); unpackSizeTotal += item.UnPackSize; @@ -741,7 +741,7 @@ static HRESULT Update2( lastRealStreamItemIndex = itemIndex; SetFileHeader(archive, *options, ui, item); // file Size can be 64-bit !!! - archive.PrepareWriteCompressedData((UInt16)item.Name.Length(), ui.Size, options->IsAesMode); + archive.PrepareWriteCompressedData((UInt16)item.Name.Length(), ui.Size, options->IsRealAesMode()); } CMemBlocks2 &memRef = refs.Refs[itemIndex]; @@ -751,7 +751,7 @@ static HRESULT Update2( archive.CreateStreamForCompressing(&outStream); memRef.WriteToStream(memManager.GetBlockSize(), outStream); SetItemInfoFromCompressingResult(memRef.CompressingResult, - options->IsAesMode, options->AesKeyMode, item); + options->IsRealAesMode(), options->AesKeyMode, item); SetFileHeader(archive, *options, ui, item); archive.WriteLocalHeader(item); // RINOK(updateCallback->SetOperationResult(NArchive::NUpdate::NOperationResult::kOK)); @@ -784,7 +784,7 @@ static HRESULT Update2( RINOK(threadInfo.OutStreamSpec->WriteToRealStream()); threadInfo.OutStreamSpec->ReleaseOutStream(); SetItemInfoFromCompressingResult(threadInfo.CompressingResult, - options->IsAesMode, options->AesKeyMode, item); + options->IsRealAesMode(), options->AesKeyMode, item); SetFileHeader(archive, *options, ui, item); archive.WriteLocalHeader(item); } -- cgit v1.2.3