summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2020-07-16 10:47:18 +0200
committerLuboš Luňák <l.lunak@collabora.com>2020-07-16 13:02:33 +0200
commitb3c4ca3439eea5f81f3e5a98830829fa20c22823 (patch)
treec5f1d3d4b62c0599f05d8c758a87c9b46f875ddb /package
parent3e572e8c058d202a8266aa66af3e658cd9c54db4 (diff)
properly finish encrypting when parallel zip saving (tdf#134796)
More fixing of 353d4528b8ad8ab, that I didn't get quite right in 08161f853571e3. There must be one final processDeflated() call that has isDeflaterFinished() return true, so that encrypting is finalized properly. Change-Id: Id15190cc467a801ccc57e1efe802cdd8fc618a71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98878 Tested-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'package')
-rw-r--r--package/source/zipapi/ZipOutputEntry.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/package/source/zipapi/ZipOutputEntry.cxx b/package/source/zipapi/ZipOutputEntry.cxx
index c9a4943cbe19..5115c7a3ebc1 100644
--- a/package/source/zipapi/ZipOutputEntry.cxx
+++ b/package/source/zipapi/ZipOutputEntry.cxx
@@ -374,6 +374,8 @@ void ZipOutputEntryParallel::writeStream(const uno::Reference< io::XInputStream
processDeflated(rBuffer, nLen);
}
);
+ finished = true;
+ processDeflated( uno::Sequence< sal_Int8 >(), 0 ); // finish encrypting, etc.
totalIn = deflater.getTotalIn();
totalOut = deflater.getTotalOut();
closeEntry();
@@ -382,7 +384,6 @@ void ZipOutputEntryParallel::writeStream(const uno::Reference< io::XInputStream
void ZipOutputEntryParallel::finishDeflater()
{
// ThreadedDeflater is called synchronously in one call, so nothing to do here.
- finished = true;
}
sal_Int64 ZipOutputEntryParallel::getDeflaterTotalIn() const