summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2019-05-07 10:59:14 +1000
committerPauli <paul.dale@oracle.com>2019-05-08 09:52:58 +1000
commitd05105665f1ba9b3d72abc456b7ae42d782477be (patch)
tree41ab14c44d4c9b4e732076a9981a097dc6fc7c30 /crypto/evp
parent97ee8af49560d6f7fe2d8f7fe9657172155522a3 (diff)
Coverity CID 1444954: Integer handling issues
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8888)
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/evp_enc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c
index 1eb894b87f..0ccea3599e 100644
--- a/crypto/evp/evp_enc.c
+++ b/crypto/evp/evp_enc.c
@@ -957,9 +957,11 @@ int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
{
+ int kl;
if (ctx->cipher->flags & EVP_CIPH_RAND_KEY)
return EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_RAND_KEY, 0, key);
- if (RAND_priv_bytes(key, EVP_CIPHER_CTX_key_length(ctx)) <= 0)
+ kl = EVP_CIPHER_CTX_key_length(ctx);
+ if (kl <= 0 || RAND_priv_bytes(key, kl) <= 0)
return 0;
return 1;
}