summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNorman Ashley <nashley@cisco.com>2020-08-04 12:34:22 +1000
committerShane Lontis <shane.lontis@oracle.com>2020-08-04 12:34:22 +1000
commit19b4e6f8feba9aeec5d4e0d0aacb11d143b59340 (patch)
treeddf819bd415b3b7121d769e5ae6e3f14628abc19
parente5b2cd5899b2631363740a40c76d96fd15d32d1c (diff)
Coverity Fixes for issue #12531
Fixes #12531 on master branch. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12557)
-rw-r--r--crypto/asn1/x_algor.c7
-rw-r--r--crypto/cms/cms_lib.c4
-rw-r--r--crypto/x509/pcy_data.c1
3 files changed, 9 insertions, 3 deletions
diff --git a/crypto/asn1/x_algor.c b/crypto/asn1/x_algor.c
index 70f2615026..f29d26d91c 100644
--- a/crypto/asn1/x_algor.c
+++ b/crypto/asn1/x_algor.c
@@ -110,13 +110,18 @@ int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src)
if ((dest->algorithm = OBJ_dup(src->algorithm)) == NULL)
return 0;
- if (src->parameter)
+ if (src->parameter != NULL) {
+ dest->parameter = ASN1_TYPE_new();
+ if (dest->parameter == NULL)
+ return 0;
+
/* Assuming this is also correct for a BOOL.
* set does copy as a side effect.
*/
if (ASN1_TYPE_set1(dest->parameter,
src->parameter->type, src->parameter->value.ptr) == 0)
return 0;
+ }
return 1;
}
diff --git a/crypto/cms/cms_lib.c b/crypto/cms/cms_lib.c
index 67f4fbb4ea..6e2a20c4b3 100644
--- a/crypto/cms/cms_lib.c
+++ b/crypto/cms/cms_lib.c
@@ -97,12 +97,12 @@ BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont)
default:
CMSerr(CMS_F_CMS_DATAINIT, CMS_R_UNSUPPORTED_TYPE);
- return NULL;
+ goto err;
}
if (cmsbio)
return BIO_push(cmsbio, cont);
-
+err:
if (!icont)
BIO_free(cont);
return NULL;
diff --git a/crypto/x509/pcy_data.c b/crypto/x509/pcy_data.c
index 966b0b2ecb..6b509cf457 100644
--- a/crypto/x509/pcy_data.c
+++ b/crypto/x509/pcy_data.c
@@ -54,6 +54,7 @@ X509_POLICY_DATA *policy_data_new(POLICYINFO *policy,
id = NULL;
ret = OPENSSL_zalloc(sizeof(*ret));
if (ret == NULL) {
+ ASN1_OBJECT_free(id);
X509V3err(X509V3_F_POLICY_DATA_NEW, ERR_R_MALLOC_FAILURE);
return NULL;
}