Index: core/fpdfapi/fpdf_parser/cpdf_crypto_handler.cpp |
diff --git a/core/fpdfapi/fpdf_parser/cpdf_crypto_handler.cpp b/core/fpdfapi/fpdf_parser/cpdf_crypto_handler.cpp |
index 3cd973c277b05ef964fd0fa927207a9d95cdf9be..8e62d0f3bf7f7f0646e3056bac8786147a65d2f1 100644 |
--- a/core/fpdfapi/fpdf_parser/cpdf_crypto_handler.cpp |
+++ b/core/fpdfapi/fpdf_parser/cpdf_crypto_handler.cpp |
@@ -34,8 +34,6 @@ void CPDF_CryptoHandler::CryptBlock(FX_BOOL bEncrypt, |
key1[m_KeyLen + 2] = (uint8_t)(objnum >> 16); |
key1[m_KeyLen + 3] = (uint8_t)gennum; |
key1[m_KeyLen + 4] = (uint8_t)(gennum >> 8); |
- FXSYS_memcpy(key1 + m_KeyLen, &objnum, 3); |
- FXSYS_memcpy(key1 + m_KeyLen + 3, &gennum, 2); |
if (m_Cipher == FXCIPHER_AES) { |
FXSYS_memcpy(key1 + m_KeyLen + 5, "sAlT", 4); |
} |
@@ -108,8 +106,11 @@ void* CPDF_CryptoHandler::CryptStart(uint32_t objnum, |
} |
uint8_t key1[48]; |
FXSYS_memcpy(key1, m_EncryptKey, m_KeyLen); |
- FXSYS_memcpy(key1 + m_KeyLen, &objnum, 3); |
- FXSYS_memcpy(key1 + m_KeyLen + 3, &gennum, 2); |
+ key1[m_KeyLen + 0] = (uint8_t)objnum; |
+ key1[m_KeyLen + 1] = (uint8_t)(objnum >> 8); |
+ key1[m_KeyLen + 2] = (uint8_t)(objnum >> 16); |
+ key1[m_KeyLen + 3] = (uint8_t)gennum; |
+ key1[m_KeyLen + 4] = (uint8_t)(gennum >> 8); |
if (m_Cipher == FXCIPHER_AES) { |
FXSYS_memcpy(key1 + m_KeyLen + 5, "sAlT", 4); |
} |