[Libreoffice-commits] core.git: package/source

Luboš Luňák (via logerrit) logerrit at kemper.freedesktop.org
Thu Jul 16 11:03:12 UTC 2020


 package/source/zipapi/ZipOutputEntry.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit b3c4ca3439eea5f81f3e5a98830829fa20c22823
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Thu Jul 16 10:47:18 2020 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Thu Jul 16 13:02:33 2020 +0200

    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 at collabora.com>
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

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


More information about the Libreoffice-commits mailing list