oox/source/core/filterdetect.cxx |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

New commits:
commit fd9777a45919820c50fcf4c201366d7ad5d1ec53
Author:     Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
AuthorDate: Mon Oct 21 17:12:28 2019 +0200
Commit:     Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
CommitDate: Tue Oct 22 08:29:25 2019 +0200

    Rather not put unencrypted doc in a tempfile
    
    Keep it in memory instead
    
    Change-Id: I25e5cb7183a4d192938110323e27f2f5d1d006fc
    Reviewed-on: https://gerrit.libreoffice.org/81253
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    Tested-by: Jenkins
    Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
    (cherry picked from commit bd3929da20b5a536b82b15af552864e7549f91ef)
    Reviewed-on: https://gerrit.libreoffice.org/81297
    Tested-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>

diff --git a/oox/source/core/filterdetect.cxx b/oox/source/core/filterdetect.cxx
index 10f661a1d0ba..4ee15678538a 100644
--- a/oox/source/core/filterdetect.cxx
+++ b/oox/source/core/filterdetect.cxx
@@ -327,20 +327,23 @@ Reference< XInputStream > 
FilterDetect::extractUnencryptedPackage( MediaDescript
                 }
                 else
                 {
-                    // create temporary file for unencrypted package
-                    Reference<XStream> xTempFile( TempFile::create(mxContext), 
UNO_QUERY_THROW );
+                    // 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(xTempFile))
+                    if (!aDecryptor.decrypt(xTempStream))
                     {
                         rMediaDescriptor[ MediaDescriptor::PROP_ABORTED() ] 
<<= true;
                     }
                     else
                     {
                         // store temp file in media descriptor to keep it alive
-                        rMediaDescriptor.setComponentDataEntry( 
"DecryptedPackage", Any( xTempFile ) );
+                        rMediaDescriptor.setComponentDataEntry( 
"DecryptedPackage", Any( xTempStream ) );
 
-                        Reference<XInputStream> xDecryptedInputStream = 
xTempFile->getInputStream();
+                        Reference<XInputStream> xDecryptedInputStream = 
xTempStream->getInputStream();
                         if( lclIsZipPackage( mxContext, xDecryptedInputStream 
) )
                             return xDecryptedInputStream;
                     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to