summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/x509v3/pcy_data.c36
-rw-r--r--src/lib/libssl/src/crypto/x509v3/pcy_data.c36
2 files changed, 36 insertions, 36 deletions
diff --git a/src/lib/libcrypto/x509v3/pcy_data.c b/src/lib/libcrypto/x509v3/pcy_data.c
index 698ca6ace5..b3699b0280 100644
--- a/src/lib/libcrypto/x509v3/pcy_data.c
+++ b/src/lib/libcrypto/x509v3/pcy_data.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pcy_data.c,v 1.8 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: pcy_data.c,v 1.9 2015/07/15 16:53:42 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2004. 3 * project 2004.
4 */ 4 */
@@ -85,45 +85,45 @@ policy_data_free(X509_POLICY_DATA *data)
85X509_POLICY_DATA * 85X509_POLICY_DATA *
86policy_data_new(POLICYINFO *policy, const ASN1_OBJECT *cid, int crit) 86policy_data_new(POLICYINFO *policy, const ASN1_OBJECT *cid, int crit)
87{ 87{
88 X509_POLICY_DATA *ret; 88 X509_POLICY_DATA *ret = NULL;
89 ASN1_OBJECT *id; 89 ASN1_OBJECT *id = NULL;
90 90
91 if (!policy && !cid) 91 if (policy == NULL && cid == NULL)
92 return NULL; 92 return NULL;
93 if (cid) { 93 if (cid != NULL) {
94 id = OBJ_dup(cid); 94 id = OBJ_dup(cid);
95 if (!id) 95 if (id == NULL)
96 return NULL; 96 return NULL;
97 } else 97 }
98 id = NULL;
99 ret = malloc(sizeof(X509_POLICY_DATA)); 98 ret = malloc(sizeof(X509_POLICY_DATA));
100 if (!ret) 99 if (ret == NULL)
101 return NULL; 100 goto err;
102 ret->expected_policy_set = sk_ASN1_OBJECT_new_null(); 101 ret->expected_policy_set = sk_ASN1_OBJECT_new_null();
103 if (!ret->expected_policy_set) { 102 if (ret->expected_policy_set == NULL)
104 free(ret); 103 goto err;
105 if (id)
106 ASN1_OBJECT_free(id);
107 return NULL;
108 }
109 104
110 if (crit) 105 if (crit)
111 ret->flags = POLICY_DATA_FLAG_CRITICAL; 106 ret->flags = POLICY_DATA_FLAG_CRITICAL;
112 else 107 else
113 ret->flags = 0; 108 ret->flags = 0;
114 109
115 if (id) 110 if (id != NULL)
116 ret->valid_policy = id; 111 ret->valid_policy = id;
117 else { 112 else {
118 ret->valid_policy = policy->policyid; 113 ret->valid_policy = policy->policyid;
119 policy->policyid = NULL; 114 policy->policyid = NULL;
120 } 115 }
121 116
122 if (policy) { 117 if (policy != NULL) {
123 ret->qualifier_set = policy->qualifiers; 118 ret->qualifier_set = policy->qualifiers;
124 policy->qualifiers = NULL; 119 policy->qualifiers = NULL;
125 } else 120 } else
126 ret->qualifier_set = NULL; 121 ret->qualifier_set = NULL;
127 122
128 return ret; 123 return ret;
124
125err:
126 free(ret);
127 ASN1_OBJECT_free(id);
128 return NULL;
129} 129}
diff --git a/src/lib/libssl/src/crypto/x509v3/pcy_data.c b/src/lib/libssl/src/crypto/x509v3/pcy_data.c
index 698ca6ace5..b3699b0280 100644
--- a/src/lib/libssl/src/crypto/x509v3/pcy_data.c
+++ b/src/lib/libssl/src/crypto/x509v3/pcy_data.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pcy_data.c,v 1.8 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: pcy_data.c,v 1.9 2015/07/15 16:53:42 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2004. 3 * project 2004.
4 */ 4 */
@@ -85,45 +85,45 @@ policy_data_free(X509_POLICY_DATA *data)
85X509_POLICY_DATA * 85X509_POLICY_DATA *
86policy_data_new(POLICYINFO *policy, const ASN1_OBJECT *cid, int crit) 86policy_data_new(POLICYINFO *policy, const ASN1_OBJECT *cid, int crit)
87{ 87{
88 X509_POLICY_DATA *ret; 88 X509_POLICY_DATA *ret = NULL;
89 ASN1_OBJECT *id; 89 ASN1_OBJECT *id = NULL;
90 90
91 if (!policy && !cid) 91 if (policy == NULL && cid == NULL)
92 return NULL; 92 return NULL;
93 if (cid) { 93 if (cid != NULL) {
94 id = OBJ_dup(cid); 94 id = OBJ_dup(cid);
95 if (!id) 95 if (id == NULL)
96 return NULL; 96 return NULL;
97 } else 97 }
98 id = NULL;
99 ret = malloc(sizeof(X509_POLICY_DATA)); 98 ret = malloc(sizeof(X509_POLICY_DATA));
100 if (!ret) 99 if (ret == NULL)
101 return NULL; 100 goto err;
102 ret->expected_policy_set = sk_ASN1_OBJECT_new_null(); 101 ret->expected_policy_set = sk_ASN1_OBJECT_new_null();
103 if (!ret->expected_policy_set) { 102 if (ret->expected_policy_set == NULL)
104 free(ret); 103 goto err;
105 if (id)
106 ASN1_OBJECT_free(id);
107 return NULL;
108 }
109 104
110 if (crit) 105 if (crit)
111 ret->flags = POLICY_DATA_FLAG_CRITICAL; 106 ret->flags = POLICY_DATA_FLAG_CRITICAL;
112 else 107 else
113 ret->flags = 0; 108 ret->flags = 0;
114 109
115 if (id) 110 if (id != NULL)
116 ret->valid_policy = id; 111 ret->valid_policy = id;
117 else { 112 else {
118 ret->valid_policy = policy->policyid; 113 ret->valid_policy = policy->policyid;
119 policy->policyid = NULL; 114 policy->policyid = NULL;
120 } 115 }
121 116
122 if (policy) { 117 if (policy != NULL) {
123 ret->qualifier_set = policy->qualifiers; 118 ret->qualifier_set = policy->qualifiers;
124 policy->qualifiers = NULL; 119 policy->qualifiers = NULL;
125 } else 120 } else
126 ret->qualifier_set = NULL; 121 ret->qualifier_set = NULL;
127 122
128 return ret; 123 return ret;
124
125err:
126 free(ret);
127 ASN1_OBJECT_free(id);
128 return NULL;
129} 129}