summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorPauli <pauli@openssl.org>2021-11-04 12:52:00 +1000
committerPauli <pauli@openssl.org>2021-11-08 08:57:08 +1000
commit571512aa46b73625bf4b82ae545614b9c3105708 (patch)
tree8d43bdd9c865b1b6a1c4f1511a2d774b2da063a2 /crypto/evp
parent0abb5703ba63bd82888837d60af6d8168601dd2f (diff)
Address coverity 1493382 argument cannot be negative
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16962) (cherry picked from commit fe4125382301201e42a3251544cda429bba0c9d7)
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/e_rc5.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/crypto/evp/e_rc5.c b/crypto/evp/e_rc5.c
index 3fb372360d..3496a70193 100644
--- a/crypto/evp/e_rc5.c
+++ b/crypto/evp/e_rc5.c
@@ -72,12 +72,13 @@ static int rc5_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
static int r_32_12_16_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
const unsigned char *iv, int enc)
{
- if (EVP_CIPHER_CTX_get_key_length(ctx) > 255) {
+ const int key_len = EVP_CIPHER_CTX_get_key_length(ctx);
+
+ if (key_len > 255 || key_len < 0) {
ERR_raise(ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH);
return 0;
}
- return RC5_32_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_get_key_length(ctx),
- key, data(ctx)->rounds);
+ return RC5_32_set_key(&data(ctx)->ks, key_len, key, data(ctx)->rounds);
}
#endif