summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sal/rtl/cipher.cxx9
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)