Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28369)
ERR_raise(ERR_LIB_EVP, ERR_R_CRYPTO_LIB);
goto err;
}
- skey->skeymgmt = skeymgmt;
- return skey;
+ if (EVP_SKEYMGMT_up_ref(skeymgmt)) {
+ skey->skeymgmt = skeymgmt;
+ return skey;
+ } else {
+ goto err;
+ }
err:
CRYPTO_FREE_REF(&skey->references);
}
skey = evp_skey_alloc(skeymgmt);
- if (skey == NULL)
- EVP_SKEYMGMT_free(skeymgmt);
+ EVP_SKEYMGMT_free(skeymgmt);
return skey;
}