]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
evp: fix coverity 1472682: argument cannot be negative
authorPauli <ppzgs1@gmail.com>
Fri, 19 Mar 2021 04:49:57 +0000 (14:49 +1000)
committerPauli <pauli@openssl.org>
Wed, 7 Apr 2021 22:49:27 +0000 (08:49 +1000)
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14620)

crypto/evp/e_cast.c

index 8325a5f8d2102e1be7885c55a1d6a5b6fdc3fd65..883030224ba4f18d74abb180dc1606e015a0c31e 100644 (file)
@@ -40,7 +40,11 @@ IMPLEMENT_BLOCK_CIPHER(cast5, ks, CAST, EVP_CAST_KEY,
 static int cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
                          const unsigned char *iv, int enc)
 {
-    CAST_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx), key);
+    int keylen = EVP_CIPHER_CTX_key_length(ctx);
+
+    if (keylen <= 0)
+        return 0;
+    CAST_set_key(&data(ctx)->ks, keylen, key);
     return 1;
 }