mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
Don't leak EVP_KDF_CTX on error
Found by Coverity Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/8260)
This commit is contained in:
parent
3037d0aadf
commit
4c3941c2eb
@ -41,6 +41,11 @@ int EVP_PBE_scrypt(const char *pass, size_t passlen,
|
||||
int rv = 1;
|
||||
EVP_KDF_CTX *kctx;
|
||||
|
||||
if (r > UINT32_MAX || p > UINT32_MAX) {
|
||||
EVPerr(EVP_F_EVP_PBE_SCRYPT, EVP_R_PARAMETER_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Maintain existing behaviour. */
|
||||
if (pass == NULL) {
|
||||
pass = empty;
|
||||
@ -53,10 +58,6 @@ int EVP_PBE_scrypt(const char *pass, size_t passlen,
|
||||
if (kctx == NULL)
|
||||
return 0;
|
||||
|
||||
if (r > UINT32_MAX || p > UINT32_MAX) {
|
||||
EVPerr(EVP_F_EVP_PBE_SCRYPT, EVP_R_PARAMETER_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
if (EVP_KDF_ctrl(kctx, EVP_KDF_CTRL_SET_PASS, pass, (size_t)passlen) != 1
|
||||
|| EVP_KDF_ctrl(kctx, EVP_KDF_CTRL_SET_SALT,
|
||||
salt, (size_t)saltlen) != 1
|
||||
|
Loading…
Reference in New Issue
Block a user