diff options
Diffstat (limited to 'sal/rtl')
-rw-r--r-- | sal/rtl/cipher.cxx | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sal/rtl/cipher.cxx b/sal/rtl/cipher.cxx index 9bc438114651..be69d045a0ec 100644 --- a/sal/rtl/cipher.cxx +++ b/sal/rtl/cipher.cxx @@ -19,6 +19,7 @@ #include <string.h> +#include <o3tl/safeint.hxx> #include <sal/types.h> #include <rtl/alloc.h> #include <rtl/cipher.h> @@ -725,7 +726,7 @@ static rtlCipherError BF_update( assert(eMode == rtl_Cipher_ModeStream); (void) eMode; (void) eDirection; - while (nDatLen > static_cast<unsigned int>(std::numeric_limits<int>::max())) { + while (nDatLen > o3tl::make_unsigned(std::numeric_limits<int>::max())) { int outl; if (EVP_CipherUpdate(ctx->m_context, pBuffer, &outl, pData, std::numeric_limits<int>::max()) == 0) @@ -1051,7 +1052,7 @@ rtlCipherError SAL_CALL rtl_cipher_initBF( // Cannot easily support DirectionBoth, and it isn't used in the LO code at least: return rtl_Cipher_E_Direction; } - if (nKeyLen > static_cast<unsigned int>(std::numeric_limits<int>::max())) { + if (nKeyLen > o3tl::make_unsigned(std::numeric_limits<int>::max())) { return rtl_Cipher_E_BufferSize; } if (pImpl->m_context.m_context != nullptr) { @@ -1188,7 +1189,7 @@ static rtlCipherError rtl_cipherARCFOUR_init_Impl( const sal_uInt8 *pKeyData, sal_Size nKeyLen) { #if defined LIBO_CIPHER_OPENSSL_BACKEND - if (nKeyLen > static_cast<unsigned int>(std::numeric_limits<int>::max())) { + if (nKeyLen > o3tl::make_unsigned(std::numeric_limits<int>::max())) { return rtl_Cipher_E_BufferSize; } if (ctx->m_context != nullptr) { @@ -1268,7 +1269,7 @@ static rtlCipherError rtl_cipherARCFOUR_update_Impl( return rtl_Cipher_E_BufferSize; #if defined LIBO_CIPHER_OPENSSL_BACKEND - while (nDatLen > static_cast<unsigned int>(std::numeric_limits<int>::max())) { + while (nDatLen > o3tl::make_unsigned(std::numeric_limits<int>::max())) { int outl; if (EVP_CipherUpdate(ctx->m_context, pBuffer, &outl, pData, std::numeric_limits<int>::max()) == 0) |