diff options
author | tb <> | 2022-08-28 18:27:47 +0000 |
---|---|---|
committer | tb <> | 2022-08-28 18:27:47 +0000 |
commit | 626a10f351f1847ad1363ebef1150a4ad18bb836 (patch) | |
tree | 8a6bf7453c5cea9cc5de9106f30bc66c3071b432 /src | |
parent | 83a91122b8be089cdc00d8850c82849d496b8207 (diff) | |
download | openbsd-626a10f351f1847ad1363ebef1150a4ad18bb836.tar.gz openbsd-626a10f351f1847ad1363ebef1150a4ad18bb836.tar.bz2 openbsd-626a10f351f1847ad1363ebef1150a4ad18bb836.zip |
Plug memory leak in CMS_add_simple_smimecap() in the unlikely event that
ASN1_INTEGER_set() fails.
ok jsing
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/cms/cms_sd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/libcrypto/cms/cms_sd.c b/src/lib/libcrypto/cms/cms_sd.c index 95343d0887..29dbfb2d19 100644 --- a/src/lib/libcrypto/cms/cms_sd.c +++ b/src/lib/libcrypto/cms/cms_sd.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cms_sd.c,v 1.23 2019/08/11 14:35:57 jsing Exp $ */ | 1 | /* $OpenBSD: cms_sd.c,v 1.24 2022/08/28 18:27:47 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
4 | * project. | 4 | * project. |
@@ -955,9 +955,12 @@ CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, int algnid, int keysize) | |||
955 | ASN1_INTEGER *key = NULL; | 955 | ASN1_INTEGER *key = NULL; |
956 | 956 | ||
957 | if (keysize > 0) { | 957 | if (keysize > 0) { |
958 | key = ASN1_INTEGER_new(); | 958 | if ((key = ASN1_INTEGER_new()) == NULL) |
959 | if (key == NULL || !ASN1_INTEGER_set(key, keysize)) | ||
960 | return 0; | 959 | return 0; |
960 | if (!ASN1_INTEGER_set(key, keysize)) { | ||
961 | ASN1_INTEGER_free(key); | ||
962 | return 0; | ||
963 | } | ||
961 | } | 964 | } |
962 | alg = X509_ALGOR_new(); | 965 | alg = X509_ALGOR_new(); |
963 | if (alg == NULL) { | 966 | if (alg == NULL) { |