Address coverity 1493382 argument cannot be negative
authorPauli <pauli@openssl.org>
Thu, 4 Nov 2021 02:52:00 +0000 (12:52 +1000)
committerPauli <pauli@openssl.org>
Sun, 7 Nov 2021 22:55:32 +0000 (08:55 +1000)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16962)

crypto/evp/e_rc5.c

index 3fb372360d4dff5c747e772abec975ff9def26a2..3496a701931c9a1cbb8b6500e35cdf4362d48d5b 100644 (file)
@@ -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