[Libreoffice-commits] core.git: Branch 'distro/cib/libreoffice-6-1' - oox/source
Samuel Mehrbrodt (via logerrit)
logerrit at kemper.freedesktop.org
Thu Oct 24 05:54:02 UTC 2019
oox/source/core/filterdetect.cxx | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
New commits:
commit 865344152d8d99a6efcbb46bc7c530a6bab8c3de
Author: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
AuthorDate: Mon Oct 21 17:12:28 2019 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Oct 24 07:52:50 2019 +0200
Rather not put unencrypted doc in a tempfile
Keep it in memory instead
Reviewed-on: https://gerrit.libreoffice.org/81253
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
(cherry picked from commit bd3929da20b5a536b82b15af552864e7549f91ef)
Reviewed-on: https://gerrit.libreoffice.org/81298
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
(cherry picked from commit a2c94755d883ed807efa4a60302762cf4c6fbefe)
Change-Id: I25e5cb7183a4d192938110323e27f2f5d1d006fc
Reviewed-on: https://gerrit.libreoffice.org/81363
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/oox/source/core/filterdetect.cxx b/oox/source/core/filterdetect.cxx
index 1af982c07480..492f359a7ab4 100644
--- a/oox/source/core/filterdetect.cxx
+++ b/oox/source/core/filterdetect.cxx
@@ -346,16 +346,26 @@ Reference< XInputStream > FilterDetect::extractUnencryptedPackage( MediaDescript
}
else
{
- // create temporary file for unencrypted package
- Reference<XStream> xTempFile( TempFile::create(mxContext), UNO_QUERY_THROW );
- aDecryptor.decrypt( xTempFile );
-
- // store temp file in media descriptor to keep it alive
- rMediaDescriptor.setComponentDataEntry( "DecryptedPackage", Any( xTempFile ) );
-
- Reference<XInputStream> xDecryptedInputStream = xTempFile->getInputStream();
- if( lclIsZipPackage( mxContext, xDecryptedInputStream ) )
- return xDecryptedInputStream;
+ // create MemoryStream for unencrypted package - rather not put this in a tempfile
+ Reference<XStream> const xTempStream(
+ mxContext->getServiceManager()->createInstanceWithContext(
+ "com.sun.star.comp.MemoryStream", mxContext),
+ UNO_QUERY_THROW);
+
+ // if decryption was unsuccessful (corrupted file or any other reason)
+ if (!aDecryptor.decrypt(xTempStream))
+ {
+ rMediaDescriptor[ MediaDescriptor::PROP_ABORTED() ] <<= true;
+ }
+ else
+ {
+ // store temp file in media descriptor to keep it alive
+ rMediaDescriptor.setComponentDataEntry( "DecryptedPackage", Any( xTempStream ) );
+
+ Reference<XInputStream> xDecryptedInputStream = xTempStream->getInputStream();
+ if( lclIsZipPackage( mxContext, xDecryptedInputStream ) )
+ return xDecryptedInputStream;
+ }
}
}
}
More information about the Libreoffice-commits
mailing list