diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_alt.c')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_alt.c | 15 |
1 files changed, 11 insertions, 4 deletions
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) * | |||
127 | i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, GENERAL_NAMES *gens, | 127 | i2v_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) * | |||
154 | i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, | 155 | i2v_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 | } |