From 977f9370ea6c8da403ddd73f8c13317520b5bf69 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Wed, 16 May 2018 16:32:43 +0000 Subject: Use pdfium::span<> in CPDF_Encryptor Provides more lifetime/bounds checking "for free". Change-Id: Ifaf7a95c0f6f288777cd6ef35996e01b3dc4bc63 Reviewed-on: https://pdfium-review.googlesource.com/32594 Reviewed-by: dsinclair Commit-Queue: Tom Sepez --- core/fpdfapi/edit/cpdf_encryptor.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'core/fpdfapi/edit/cpdf_encryptor.cpp') diff --git a/core/fpdfapi/edit/cpdf_encryptor.cpp b/core/fpdfapi/edit/cpdf_encryptor.cpp index 033df38a48..fd969b8b2c 100644 --- a/core/fpdfapi/edit/cpdf_encryptor.cpp +++ b/core/fpdfapi/edit/cpdf_encryptor.cpp @@ -9,21 +9,23 @@ CPDF_Encryptor::CPDF_Encryptor(CPDF_CryptoHandler* pHandler, int objnum, - const uint8_t* src_data, - uint32_t src_size) { - if (src_size == 0) + pdfium::span src_data) { + if (src_data.empty()) return; if (!pHandler) { - m_pData = src_data; - m_dwSize = src_size; + m_Span = src_data; return; } - m_dwSize = pHandler->EncryptGetSize(objnum, 0, src_data, src_size); - m_pNewBuf.reset(FX_Alloc(uint8_t, m_dwSize)); - pHandler->EncryptContent(objnum, 0, src_data, src_size, m_pNewBuf.get(), - m_dwSize); - m_pData = m_pNewBuf.get(); + + uint32_t buf_size = + pHandler->EncryptGetSize(objnum, 0, src_data.data(), src_data.size()); + m_NewBuf.resize(buf_size); + pHandler->EncryptContent(objnum, 0, src_data.data(), src_data.size(), + m_NewBuf.data(), + buf_size); // Updates |buf_size| with actual. + m_NewBuf.resize(buf_size); + m_Span = m_NewBuf; } CPDF_Encryptor::~CPDF_Encryptor() {} -- cgit v1.2.3