This commit is contained in:
Zhi Guan
2026-06-19 21:27:38 +08:00
parent 2d37e9b991
commit 88df05a81a
5 changed files with 18 additions and 8 deletions

View File

@@ -352,7 +352,8 @@ int aes_ccm_encrypt(const AES_KEY *key, const uint8_t *iv, size_t ivlen,
}
inlen_size = 15 - ivlen;
if (inlen_size < 8 && inlen >= ((size_t)1 << (inlen_size * 8))) {
// WARNING: (size_t)1 << n or (int)1 << n overflows on some systems when n == 32.
if (inlen_size < 8 && (uint64_t)inlen >= ((uint64_t)1 << (inlen_size * 8))) {
error_print();
return -1;
}
@@ -436,7 +437,8 @@ int aes_ccm_decrypt(const AES_KEY *key, const uint8_t *iv, size_t ivlen,
}
inlen_size = 15 - ivlen;
if (inlen_size < 8 && inlen >= ((size_t)1 << (inlen_size * 8))) {
// WARNING: (size_t)1 << n or (int)1 << n overflows on some systems when n == 32.
if (inlen_size < 8 && (uint64_t)inlen >= ((uint64_t)1 << (inlen_size * 8))) {
error_print();
return -1;
}

View File

@@ -74,7 +74,8 @@ int sm4_ccm_encrypt(const SM4_KEY *sm4_key, const uint8_t *iv, size_t ivlen,
}
inlen_size = 15 - ivlen;
if (inlen_size < 8 && inlen >= ((size_t)1 << (inlen_size * 8))) {
// WARNING: (size_t)1 << n or (int)1 << n overflows on some systems when n == 32.
if (inlen_size < 8 && (uint64_t)inlen >= ((uint64_t)1 << (inlen_size * 8))) {
error_print();
return -1;
}
@@ -159,7 +160,8 @@ int sm4_ccm_decrypt(const SM4_KEY *sm4_key, const uint8_t *iv, size_t ivlen,
}
inlen_size = 15 - ivlen;
if (inlen_size < 8 && inlen >= ((size_t)1 << (inlen_size * 8))) {
// WARNING: (size_t)1 << n or (int)1 << n overflows on some systems when n == 32.
if (inlen_size < 8 && (uint64_t)inlen >= ((uint64_t)1 << (inlen_size * 8))) {
error_print();
return -1;
}