diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/x509v3/v3_akey.c | 13 | ||||
| -rw-r--r-- | src/lib/libcrypto/x509v3/v3_alt.c | 15 |
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) * | |||
| 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 | } |
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 | } |
