diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2020-07-16 10:47:18 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2020-07-16 13:02:33 +0200 |
commit | b3c4ca3439eea5f81f3e5a98830829fa20c22823 (patch) | |
tree | c5f1d3d4b62c0599f05d8c758a87c9b46f875ddb /package | |
parent | 3e572e8c058d202a8266aa66af3e658cd9c54db4 (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.cxx | 3 |
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 |