From bd3929da20b5a536b82b15af552864e7549f91ef Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Mon, 21 Oct 2019 17:12:28 +0200 Subject: Rather not put unencrypted doc in a tempfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keep it in memory instead Change-Id: I25e5cb7183a4d192938110323e27f2f5d1d006fc Reviewed-on: https://gerrit.libreoffice.org/81253 Reviewed-by: Tomaž Vajngerl Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt --- oox/source/core/filterdetect.cxx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'oox') diff --git a/oox/source/core/filterdetect.cxx b/oox/source/core/filterdetect.cxx index a12e21d1503a..c83dab9d6f74 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 xTempFile( TempFile::create(mxContext), UNO_QUERY_THROW ); + // create MemoryStream for unencrypted package - rather not put this in a tempfile + Reference 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 xDecryptedInputStream = xTempFile->getInputStream(); + Reference xDecryptedInputStream = xTempStream->getInputStream(); if( lclIsZipPackage( mxContext, xDecryptedInputStream ) ) return xDecryptedInputStream; } -- cgit