Chromium Code Reviews| Index: core/fpdfapi/fpdf_parser/cpdf_security_handler.cpp |
| diff --git a/core/fpdfapi/fpdf_parser/cpdf_security_handler.cpp b/core/fpdfapi/fpdf_parser/cpdf_security_handler.cpp |
| index d6416fb05530d8506d364393806d6e739822c3ea..94ef042bc0a80ca6248cb851f65539cc1f301291 100644 |
| --- a/core/fpdfapi/fpdf_parser/cpdf_security_handler.cpp |
| +++ b/core/fpdfapi/fpdf_parser/cpdf_security_handler.cpp |
| @@ -67,15 +67,15 @@ void CalcEncryptKey(CPDF_Dictionary* pEncrypt, |
| } // namespace |
| -CPDF_SecurityHandler::CPDF_SecurityHandler() { |
| - m_Version = 0; |
| - m_Revision = 0; |
| - m_pParser = NULL; |
| - m_pEncryptDict = NULL; |
| - m_Permissions = 0; |
| - m_Cipher = FXCIPHER_NONE; |
| - m_KeyLen = 0; |
| -} |
| +CPDF_SecurityHandler::CPDF_SecurityHandler() |
| + : m_Version(0), |
| + m_Revision(0), |
| + m_pParser(nullptr), |
| + m_pEncryptDict(nullptr), |
| + m_Permissions(0), |
| + m_Cipher(FXCIPHER_NONE), |
| + m_KeyLen(0), |
| + m_bOwnerUnlocked(false) {} |
| CPDF_SecurityHandler::~CPDF_SecurityHandler() {} |
| @@ -94,23 +94,21 @@ FX_BOOL CPDF_SecurityHandler::OnInit(CPDF_Parser* pParser, |
| } |
| return CheckSecurity(m_KeyLen); |
| } |
| + |
| FX_BOOL CPDF_SecurityHandler::CheckSecurity(int32_t key_len) { |
| CFX_ByteString password = m_pParser->GetPassword(); |
| - if (CheckPassword(password.raw_str(), password.GetLength(), TRUE, |
| + if (!password.IsEmpty() && |
| + CheckPassword(password.raw_str(), password.GetLength(), TRUE, |
|
Tom Sepez
2016/05/23 16:30:26
Nit: candiadate for taking a const CFX_ByteStringC
Lei Zhang
2016/05/23 18:41:24
Yep. I will take care of this in a follow up CL.
|
| m_EncryptKey, key_len)) { |
| - if (password.IsEmpty()) { |
| - if (!CheckPassword(password.raw_str(), password.GetLength(), FALSE, |
| - m_EncryptKey, key_len)) { |
| - return FALSE; |
| - } |
| - } |
| + m_bOwnerUnlocked = true; |
| return TRUE; |
| } |
| return CheckPassword(password.raw_str(), password.GetLength(), FALSE, |
| m_EncryptKey, key_len); |
| } |
| + |
| uint32_t CPDF_SecurityHandler::GetPermissions() { |
| - return m_Permissions; |
| + return m_bOwnerUnlocked ? 0xFFFFFFFF : m_Permissions; |
| } |
| static FX_BOOL LoadCryptInfo(CPDF_Dictionary* pEncryptDict, |