summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_akey.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_akey.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_akey.c13
1 files changed, 11 insertions, 2 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}