diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_akey.c')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_akey.c | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_akey.c b/src/lib/libcrypto/x509v3/v3_akey.c index 3b57fd21f7..65184b19b6 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.20 2019/04/21 08:07:47 tb Exp $ */ | 1 | /* $OpenBSD: v3_akey.c,v 1.21 2019/04/21 16:50:34 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,22 +91,41 @@ 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 | char *tmp; | 94 | char *tmpstr = NULL; |
95 | 95 | ||
96 | if (akeyid->keyid) { | 96 | if (akeyid->keyid != NULL) { |
97 | tmp = hex_to_string(akeyid->keyid->data, akeyid->keyid->length); | 97 | if ((tmpstr = hex_to_string(akeyid->keyid->data, |
98 | X509V3_add_value("keyid", tmp, &extlist); | 98 | akeyid->keyid->length)) == NULL) |
99 | free(tmp); | 99 | goto err; |
100 | if (!X509V3_add_value("keyid", tmpstr, &extlist)) | ||
101 | goto err; | ||
102 | free(tmpstr); | ||
103 | tmpstr = NULL; | ||
100 | } | 104 | } |
101 | if (akeyid->issuer) | 105 | |
102 | extlist = i2v_GENERAL_NAMES(NULL, akeyid->issuer, extlist); | 106 | if (akeyid->issuer != NULL) { |
103 | if (akeyid->serial) { | 107 | if ((extlist = i2v_GENERAL_NAMES(NULL, akeyid->issuer, |
104 | tmp = hex_to_string(akeyid->serial->data, | 108 | extlist)) == NULL) |
105 | akeyid->serial->length); | 109 | goto err; |
106 | X509V3_add_value("serial", tmp, &extlist); | ||
107 | free(tmp); | ||
108 | } | 110 | } |
111 | |||
112 | if (akeyid->serial != NULL) { | ||
113 | if ((tmpstr = hex_to_string(akeyid->serial->data, | ||
114 | akeyid->serial->length)) == NULL) | ||
115 | goto err; | ||
116 | if (!X509V3_add_value("serial", tmpstr, &extlist)) | ||
117 | goto err; | ||
118 | free(tmpstr); | ||
119 | tmpstr = NULL; | ||
120 | } | ||
121 | |||
109 | return extlist; | 122 | return extlist; |
123 | |||
124 | err: | ||
125 | free(tmpstr); | ||
126 | sk_CONF_VALUE_pop_free(extlist, X509V3_conf_free); | ||
127 | |||
128 | return NULL; | ||
110 | } | 129 | } |
111 | 130 | ||
112 | /* | 131 | /* |