summaryrefslogtreecommitdiff
path: root/core/fpdfapi/edit/cpdf_creator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/edit/cpdf_creator.cpp')
-rw-r--r--core/fpdfapi/edit/cpdf_creator.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp
index 5d4fac478d..aa8c751046 100644
--- a/core/fpdfapi/edit/cpdf_creator.cpp
+++ b/core/fpdfapi/edit/cpdf_creator.cpp
@@ -619,10 +619,11 @@ void CPDF_Creator::InitID() {
if (m_pEncryptDict) {
ASSERT(m_pParser);
if (m_pEncryptDict->GetStringFor("Filter") == "Standard") {
- ByteString user_pass = m_pParser->GetPassword();
+ m_pNewEncryptDict = ToDictionary(m_pEncryptDict->Clone());
+ m_pEncryptDict = m_pNewEncryptDict.get();
m_pSecurityHandler = pdfium::MakeUnique<CPDF_SecurityHandler>();
- m_pSecurityHandler->OnCreate(m_pEncryptDict.Get(), m_pIDArray.get(),
- user_pass);
+ m_pSecurityHandler->OnCreate(m_pNewEncryptDict.get(), m_pIDArray.get(),
+ m_pParser->GetPassword());
m_bSecurityChanged = true;
}
}
@@ -666,6 +667,7 @@ void CPDF_Creator::RemoveSecurity() {
m_pSecurityHandler.Reset();
m_bSecurityChanged = true;
m_pEncryptDict = nullptr;
+ m_pNewEncryptDict.reset();
}
CPDF_CryptoHandler* CPDF_Creator::GetCryptoHandler() {