| Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp
|
| diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp
|
| index fadcd38b1be4280b485e253c63b0f478d87c5add..e09bbbbb2e9a3ade9566d74db700d43f96447536 100644
|
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp
|
| +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp
|
| @@ -292,11 +292,11 @@ void Revision6_Hash(FX_LPCBYTE password, FX_DWORD size, FX_LPCBYTE salt, FX_LPCB
|
| FX_BOOL CPDF_StandardSecurityHandler::AES256_CheckPassword(FX_LPCBYTE password, FX_DWORD size,
|
| FX_BOOL bOwner, FX_LPBYTE key)
|
| {
|
| - CFX_ByteString okey = m_pEncryptDict->GetString(FX_BSTRC("O"));
|
| + CFX_ByteString okey = m_pEncryptDict ? m_pEncryptDict->GetString(FX_BSTRC("O")) : CFX_ByteString();
|
| if (okey.GetLength() < 48) {
|
| return FALSE;
|
| }
|
| - CFX_ByteString ukey = m_pEncryptDict->GetString(FX_BSTRC("U"));
|
| + CFX_ByteString ukey = m_pEncryptDict ? m_pEncryptDict->GetString(FX_BSTRC("U")) : CFX_ByteString();
|
| if (ukey.GetLength() < 48) {
|
| return FALSE;
|
| }
|
| @@ -331,7 +331,7 @@ FX_BOOL CPDF_StandardSecurityHandler::AES256_CheckPassword(FX_LPCBYTE password,
|
| }
|
| CRYPT_SHA256Finish(sha, digest);
|
| }
|
| - CFX_ByteString ekey = m_pEncryptDict->GetString(bOwner ? FX_BSTRC("OE") : FX_BSTRC("UE"));
|
| + CFX_ByteString ekey = m_pEncryptDict ? m_pEncryptDict->GetString(bOwner ? FX_BSTRC("OE") : FX_BSTRC("UE")) : CFX_ByteString();
|
| if (ekey.GetLength() < 32) {
|
| return FALSE;
|
| }
|
| @@ -391,7 +391,7 @@ FX_BOOL CPDF_StandardSecurityHandler::CheckUserPassword(FX_LPCBYTE password, FX_
|
| {
|
| CalcEncryptKey(m_pEncryptDict, password, pass_size, key, key_len, bIgnoreEncryptMeta,
|
| m_pParser->GetIDArray());
|
| - CFX_ByteString ukey = m_pEncryptDict->GetString(FX_BSTRC("U"));
|
| + CFX_ByteString ukey = m_pEncryptDict ? m_pEncryptDict->GetString(FX_BSTRC("U")) : CFX_ByteString();
|
| if (ukey.GetLength() < 16) {
|
| return FALSE;
|
| }
|
|
|