diff options
| author | tb <> | 2022-08-28 18:27:47 +0000 |
|---|---|---|
| committer | tb <> | 2022-08-28 18:27:47 +0000 |
| commit | b0456ada9d95082610b820d3b1226160e07765d5 (patch) | |
| tree | 8a6bf7453c5cea9cc5de9106f30bc66c3071b432 /src/lib/libcrypto/cms/cms_sd.c | |
| parent | 208d82606cdbc7cae515c0e387b43928b4a7e714 (diff) | |
| download | openbsd-b0456ada9d95082610b820d3b1226160e07765d5.tar.gz openbsd-b0456ada9d95082610b820d3b1226160e07765d5.tar.bz2 openbsd-b0456ada9d95082610b820d3b1226160e07765d5.zip | |
Plug memory leak in CMS_add_simple_smimecap() in the unlikely event that
ASN1_INTEGER_set() fails.
ok jsing
Diffstat (limited to 'src/lib/libcrypto/cms/cms_sd.c')
| -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) { |
