summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2022-08-28 18:27:47 +0000
committertb <>2022-08-28 18:27:47 +0000
commit626a10f351f1847ad1363ebef1150a4ad18bb836 (patch)
tree8a6bf7453c5cea9cc5de9106f30bc66c3071b432 /src
parent83a91122b8be089cdc00d8850c82849d496b8207 (diff)
downloadopenbsd-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.c9
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) {