summaryrefslogtreecommitdiff
path: root/crypto/rsa
diff options
context:
space:
mode:
authorx2018 <xkernel.wang@foxmail.com>2021-10-22 22:50:27 +0800
committerPauli <pauli@openssl.org>2021-10-27 08:36:55 +1000
commit9dddcd90a1350fa63486cbf3226c3eee79f9aff5 (patch)
treef55ee0a9a4318165e3d40cc6a6e2a0b4db69e6d8 /crypto/rsa
parent7220085f22cf6c49933ea8287eb15db57f7ab0db (diff)
downloadopenssl-new-9dddcd90a1350fa63486cbf3226c3eee79f9aff5.tar.gz
add checks for the return values of BN_new(), sk_RSA_PRIME_INFO_new_reserve(),
EVP_PKEY_CTX_new_from_pkey() and EVP_CIPHER_CTX_new(). Otherwise may result in memory errors. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16892)
Diffstat (limited to 'crypto/rsa')
-rw-r--r--crypto/rsa/rsa_backend.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/rsa/rsa_backend.c b/crypto/rsa/rsa_backend.c
index 85ad54e4cf..46283265d2 100644
--- a/crypto/rsa/rsa_backend.c
+++ b/crypto/rsa/rsa_backend.c
@@ -392,6 +392,8 @@ RSA *ossl_rsa_dup(const RSA *rsa, int selection)
if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0
&& (pnum = sk_RSA_PRIME_INFO_num(rsa->prime_infos)) > 0) {
dupkey->prime_infos = sk_RSA_PRIME_INFO_new_reserve(NULL, pnum);
+ if (dupkey->prime_infos == NULL)
+ goto err;
for (i = 0; i < pnum; i++) {
const RSA_PRIME_INFO *pinfo = NULL;
RSA_PRIME_INFO *duppinfo = NULL;