From 827d7dbf3b75e61f63c769ce41634e890a608455 Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Fri, 14 Mar 2014 09:42:02 +0100 Subject: fdo#51819: autorecovery: fix saving password in protected documents. Thanks to sayt@mailinator.com for the idea. Change-Id: Ib79abafe3d4d3ba21f7914aeb284d86ce662824c (cherry picked from commit ef87ff6680f79362a431db6e7ef2f40cfc576219) Reviewed-on: https://gerrit.libreoffice.org/8633 Tested-by: Markus Mohrhard Reviewed-by: Markus Mohrhard --- framework/source/services/autorecovery.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx index 8a32d789e7af..3a18af4edebe 100644 --- a/framework/source/services/autorecovery.cxx +++ b/framework/source/services/autorecovery.cxx @@ -2305,9 +2305,11 @@ void AutoRecovery::implts_saveOneDoc(const OUString& // if the document was loaded with a password, it should be // stored with password utl::MediaDescriptor lNewArgs; - OUString sPassword = lOldArgs.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_PASSWORD(), OUString()); - if (!sPassword.isEmpty()) - lNewArgs[utl::MediaDescriptor::PROP_PASSWORD()] <<= sPassword; + css::uno::Sequence< css::beans::NamedValue > aEncryptionData = + lOldArgs.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_ENCRYPTIONDATA(), + css::uno::Sequence< css::beans::NamedValue >()); + if (aEncryptionData.getLength() > 0) + lNewArgs[utl::MediaDescriptor::PROP_ENCRYPTIONDATA()] <<= aEncryptionData; // Further it must be saved using the default file format of that application. // Otherwhise we will some data lost. -- cgit v1.2.3