diff options
author | Thorsten Behrens <tbehrens@suse.com> | 2011-12-16 01:30:22 +0100 |
---|---|---|
committer | Thorsten Behrens <tbehrens@suse.com> | 2011-12-16 01:33:49 +0100 |
commit | f9128f9848de25d80bb032b872f03839f6a3b467 (patch) | |
tree | 3937cc0e3a53cfadfa001284dd0117ec607b32c5 /package | |
parent | e0436514c3be513fcb0f02fd45be76f88569515b (diff) |
Fix inconsistent compression method for encrypted ZIP packages.
While fixing n#653688, turned out we write method=STORED into local
file headers, and method=DEFLATED into central directory structure
for encrypted ODF. Damn side-effects - fixed as hopefully intended
here.
Diffstat (limited to 'package')
-rw-r--r-- | package/source/zippackage/ZipPackageFolder.cxx | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/package/source/zippackage/ZipPackageFolder.cxx b/package/source/zippackage/ZipPackageFolder.cxx index 60f5cd1ff7ba..daee0f4fd0e1 100644 --- a/package/source/zippackage/ZipPackageFolder.cxx +++ b/package/source/zippackage/ZipPackageFolder.cxx @@ -657,16 +657,16 @@ bool ZipPackageFolder::saveChild( const ::rtl::OUString &rShortName, const Conte rInfo.pStream->SetToBeEncrypted( sal_True ); } + // Then copy it back afterwards... + ZipPackageFolder::copyZipEntry ( rInfo.pStream->aEntry, *pTempEntry ); + // Remove hacky bit from entry flags - if ( pTempEntry->nFlag & ( 1 << 4 ) ) + if ( rInfo.pStream->aEntry.nFlag & ( 1 << 4 ) ) { - pTempEntry->nFlag &= ~( 1 << 4 ); - pTempEntry->nMethod = STORED; + rInfo.pStream->aEntry.nFlag &= ~( 1 << 4 ); + rInfo.pStream->aEntry.nMethod = STORED; } - // Then copy it back afterwards... - ZipPackageFolder::copyZipEntry ( rInfo.pStream->aEntry, *pTempEntry ); - // TODO/LATER: get rid of this hack ( the encrypted stream size property is changed during saving ) if ( rInfo.pStream->IsEncrypted() ) rInfo.pStream->setSize( nOwnStreamOrigSize ); |