diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_akey.c')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_akey.c | 13 |
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) * | |||
91 | i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, AUTHORITY_KEYID *akeyid, | 91 | i2v_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 | } |