diff options
author | Artem Strygin <art-snake@yandex-team.ru> | 2018-07-24 10:14:24 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-24 10:14:24 +0000 |
commit | aa50728980036f07fda232cea974fd80c89b7cb7 (patch) | |
tree | 101e954b24a44f1d818923076695bd25759d6b14 /core/fpdfapi/parser/cpdf_security_handler.cpp | |
parent | c62aa207e9acb919c33df5f3694fe159619dda86 (diff) | |
download | pdfium-aa50728980036f07fda232cea974fd80c89b7cb7.tar.xz |
Fix encryption dictionary owning.
Return encryption dictionary as const reference
from CPDF_Parser.
Create a copy in CPDF_Creator if needed.
Change-Id: I270f71d307d818fba7f65ebe379f5942ae816934
Reviewed-on: https://pdfium-review.googlesource.com/38390
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_security_handler.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_security_handler.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/core/fpdfapi/parser/cpdf_security_handler.cpp b/core/fpdfapi/parser/cpdf_security_handler.cpp index eeba53ef34..caa82a9ddd 100644 --- a/core/fpdfapi/parser/cpdf_security_handler.cpp +++ b/core/fpdfapi/parser/cpdf_security_handler.cpp @@ -119,7 +119,13 @@ bool CPDF_SecurityHandler::CheckSecurity(const ByteString& password) { } uint32_t CPDF_SecurityHandler::GetPermissions() const { - return m_bOwnerUnlocked ? 0xFFFFFFFF : m_Permissions; + uint32_t dwPermission = m_bOwnerUnlocked ? 0xFFFFFFFF : m_Permissions; + if (m_pEncryptDict && m_pEncryptDict->GetStringFor("Filter") == "Standard") { + // See PDF Reference 1.7, page 123, table 3.20. + dwPermission &= 0xFFFFFFFC; + dwPermission |= 0xFFFFF0C0; + } + return dwPermission; } static bool LoadCryptInfo(const CPDF_Dictionary* pEncryptDict, |