summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2011-12-16 01:30:22 +0100
committerThorsten Behrens <tbehrens@suse.com>2011-12-16 01:33:49 +0100
commitf9128f9848de25d80bb032b872f03839f6a3b467 (patch)
tree3937cc0e3a53cfadfa001284dd0117ec607b32c5 /package
parente0436514c3be513fcb0f02fd45be76f88569515b (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.cxx12
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 );