summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/x509v3/v3_akey.c13
-rw-r--r--src/lib/libcrypto/x509v3/v3_alt.c15
2 files changed, 22 insertions, 6 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_akey.c b/src/lib/libcrypto/x509v3/v3_akey.c
index 65184b19b6..e49f45fe0a 100644
--- a/src/lib/libcrypto/x509v3/v3_akey.c
+++ b/src/lib/libcrypto/x509v3/v3_akey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_akey.c,v 1.21 2019/04/21 16:50:34 tb Exp $ */ 1/* $OpenBSD: v3_akey.c,v 1.22 2019/04/22 17:10:01 tb 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 1999. 3 * project 1999.
4 */ 4 */
@@ -91,8 +91,14 @@ static STACK_OF(CONF_VALUE) *
91i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, AUTHORITY_KEYID *akeyid, 91i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, AUTHORITY_KEYID *akeyid,
92 STACK_OF(CONF_VALUE) *extlist) 92 STACK_OF(CONF_VALUE) *extlist)
93{ 93{
94 STACK_OF(CONF_VALUE) *free_extlist = NULL;
94 char *tmpstr = NULL; 95 char *tmpstr = NULL;
95 96
97 if (extlist == NULL) {
98 if ((free_extlist = extlist = sk_CONF_VALUE_new_null()) == NULL)
99 return NULL;
100 }
101
96 if (akeyid->keyid != NULL) { 102 if (akeyid->keyid != NULL) {
97 if ((tmpstr = hex_to_string(akeyid->keyid->data, 103 if ((tmpstr = hex_to_string(akeyid->keyid->data,
98 akeyid->keyid->length)) == NULL) 104 akeyid->keyid->length)) == NULL)
@@ -119,11 +125,14 @@ i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, AUTHORITY_KEYID *akeyid,
119 tmpstr = NULL; 125 tmpstr = NULL;
120 } 126 }
121 127
128 if (sk_CONF_VALUE_num(extlist) <= 0)
129 goto err;
130
122 return extlist; 131 return extlist;
123 132
124 err: 133 err:
125 free(tmpstr); 134 free(tmpstr);
126 sk_CONF_VALUE_pop_free(extlist, X509V3_conf_free); 135 sk_CONF_VALUE_pop_free(free_extlist, X509V3_conf_free);
127 136
128 return NULL; 137 return NULL;
129} 138}
diff --git a/src/lib/libcrypto/x509v3/v3_alt.c b/src/lib/libcrypto/x509v3/v3_alt.c
index 2dc07b4025..0f0177ff8b 100644
--- a/src/lib/libcrypto/x509v3/v3_alt.c
+++ b/src/lib/libcrypto/x509v3/v3_alt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_alt.c,v 1.29 2019/04/21 16:50:34 tb Exp $ */ 1/* $OpenBSD: v3_alt.c,v 1.30 2019/04/22 17:10:01 tb 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. 3 * project.
4 */ 4 */
@@ -127,11 +127,12 @@ STACK_OF(CONF_VALUE) *
127i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, GENERAL_NAMES *gens, 127i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, GENERAL_NAMES *gens,
128 STACK_OF(CONF_VALUE) *ret) 128 STACK_OF(CONF_VALUE) *ret)
129{ 129{
130 STACK_OF(CONF_VALUE) *free_ret = NULL;
130 GENERAL_NAME *gen; 131 GENERAL_NAME *gen;
131 int i; 132 int i;
132 133
133 if (ret == NULL) { 134 if (ret == NULL) {
134 if ((ret = sk_CONF_VALUE_new_null()) == NULL) 135 if ((free_ret = ret = sk_CONF_VALUE_new_null()) == NULL)
135 return NULL; 136 return NULL;
136 } 137 }
137 138
@@ -145,7 +146,7 @@ i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, GENERAL_NAMES *gens,
145 return ret; 146 return ret;
146 147
147 err: 148 err:
148 sk_CONF_VALUE_pop_free(ret, X509V3_conf_free); 149 sk_CONF_VALUE_pop_free(free_ret, X509V3_conf_free);
149 150
150 return NULL; 151 return NULL;
151} 152}
@@ -154,10 +155,16 @@ STACK_OF(CONF_VALUE) *
154i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, 155i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen,
155 STACK_OF(CONF_VALUE) *ret) 156 STACK_OF(CONF_VALUE) *ret)
156{ 157{
158 STACK_OF(CONF_VALUE) *free_ret = NULL;
157 unsigned char *p; 159 unsigned char *p;
158 char oline[256], htmp[5]; 160 char oline[256], htmp[5];
159 int i; 161 int i;
160 162
163 if (ret == NULL) {
164 if ((free_ret = ret = sk_CONF_VALUE_new_null()) == NULL)
165 return NULL;
166 }
167
161 switch (gen->type) { 168 switch (gen->type) {
162 case GEN_OTHERNAME: 169 case GEN_OTHERNAME:
163 if (!X509V3_add_value("othername", "<unsupported>", &ret)) 170 if (!X509V3_add_value("othername", "<unsupported>", &ret))
@@ -231,7 +238,7 @@ i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen,
231 return ret; 238 return ret;
232 239
233 err: 240 err:
234 sk_CONF_VALUE_pop_free(ret, X509V3_conf_free); 241 sk_CONF_VALUE_pop_free(free_ret, X509V3_conf_free);
235 242
236 return NULL; 243 return NULL;
237} 244}