diff options
author | Daniel DeFreez <daniel@defreez.com> | 2019-02-13 14:26:14 +0800 |
---|---|---|
committer | Paul Yang <yang.yang@baishancloud.com> | 2019-02-13 14:26:14 +0800 |
commit | b754a8a1590b8c5c9662c8a0ba49573991488b20 (patch) | |
tree | d306d33d3f3f03e0748bc0dcbc5fc59479b11466 | |
parent | 5674466e007d892ec55441059b3763abd5dd5440 (diff) |
Fix null pointer dereference in cms_RecipientInfo_kari_init
CLA: trivial
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Paul Yang <yang.yang@baishancloud.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8137)
-rw-r--r-- | crypto/cms/cms_kari.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/crypto/cms/cms_kari.c b/crypto/cms/cms_kari.c index 4ee7017cfe..9f1f5d55f6 100644 --- a/crypto/cms/cms_kari.c +++ b/crypto/cms/cms_kari.c @@ -282,7 +282,7 @@ static int cms_kari_create_ephemeral_key(CMS_KeyAgreeRecipientInfo *kari, return rv; } -/* Initialise a ktri based on passed certificate and key */ +/* Initialise a kari based on passed certificate and key */ int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip, EVP_PKEY *pk, unsigned int flags) @@ -299,6 +299,9 @@ int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip, kari->version = 3; rek = M_ASN1_new_of(CMS_RecipientEncryptedKey); + if (rek == NULL) + return 0; + if (!sk_CMS_RecipientEncryptedKey_push(kari->recipientEncryptedKeys, rek)) { M_ASN1_free_of(rek, CMS_RecipientEncryptedKey); return 0; |