diff options
author | Norman Ashley <nashley@cisco.com> | 2020-08-04 12:34:22 +1000 |
---|---|---|
committer | Shane Lontis <shane.lontis@oracle.com> | 2020-08-04 12:34:22 +1000 |
commit | 19b4e6f8feba9aeec5d4e0d0aacb11d143b59340 (patch) | |
tree | ddf819bd415b3b7121d769e5ae6e3f14628abc19 /crypto | |
parent | e5b2cd5899b2631363740a40c76d96fd15d32d1c (diff) | |
download | openssl-new-19b4e6f8feba9aeec5d4e0d0aacb11d143b59340.tar.gz |
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)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/asn1/x_algor.c | 7 | ||||
-rw-r--r-- | crypto/cms/cms_lib.c | 4 | ||||
-rw-r--r-- | crypto/x509/pcy_data.c | 1 |
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; } |