summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_info.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_info.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_info.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_info.c b/src/lib/libcrypto/x509v3/v3_info.c
index e0ef69de42..53e3f48859 100644
--- a/src/lib/libcrypto/x509v3/v3_info.c
+++ b/src/lib/libcrypto/x509v3/v3_info.c
@@ -69,7 +69,7 @@ static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method
69static AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method, 69static AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method,
70 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); 70 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
71 71
72const X509V3_EXT_METHOD v3_info = 72X509V3_EXT_METHOD v3_info =
73{ NID_info_access, X509V3_EXT_MULTILINE, ASN1_ITEM_ref(AUTHORITY_INFO_ACCESS), 73{ NID_info_access, X509V3_EXT_MULTILINE, ASN1_ITEM_ref(AUTHORITY_INFO_ACCESS),
740,0,0,0, 740,0,0,0,
750,0, 750,0,
@@ -78,7 +78,7 @@ const X509V3_EXT_METHOD v3_info =
780,0, 780,0,
79NULL}; 79NULL};
80 80
81const X509V3_EXT_METHOD v3_sinfo = 81X509V3_EXT_METHOD v3_sinfo =
82{ NID_sinfo_access, X509V3_EXT_MULTILINE, ASN1_ITEM_ref(AUTHORITY_INFO_ACCESS), 82{ NID_sinfo_access, X509V3_EXT_MULTILINE, ASN1_ITEM_ref(AUTHORITY_INFO_ACCESS),
830,0,0,0, 830,0,0,0,
840,0, 840,0,
@@ -141,35 +141,36 @@ static AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *metho
141 int i, objlen; 141 int i, objlen;
142 char *objtmp, *ptmp; 142 char *objtmp, *ptmp;
143 if(!(ainfo = sk_ACCESS_DESCRIPTION_new_null())) { 143 if(!(ainfo = sk_ACCESS_DESCRIPTION_new_null())) {
144 X509V3err(X509V3_F_V2I_AUTHORITY_INFO_ACCESS,ERR_R_MALLOC_FAILURE); 144 X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,ERR_R_MALLOC_FAILURE);
145 return NULL; 145 return NULL;
146 } 146 }
147 for(i = 0; i < sk_CONF_VALUE_num(nval); i++) { 147 for(i = 0; i < sk_CONF_VALUE_num(nval); i++) {
148 cnf = sk_CONF_VALUE_value(nval, i); 148 cnf = sk_CONF_VALUE_value(nval, i);
149 if(!(acc = ACCESS_DESCRIPTION_new()) 149 if(!(acc = ACCESS_DESCRIPTION_new())
150 || !sk_ACCESS_DESCRIPTION_push(ainfo, acc)) { 150 || !sk_ACCESS_DESCRIPTION_push(ainfo, acc)) {
151 X509V3err(X509V3_F_V2I_AUTHORITY_INFO_ACCESS,ERR_R_MALLOC_FAILURE); 151 X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,ERR_R_MALLOC_FAILURE);
152 goto err; 152 goto err;
153 } 153 }
154 ptmp = strchr(cnf->name, ';'); 154 ptmp = strchr(cnf->name, ';');
155 if(!ptmp) { 155 if(!ptmp) {
156 X509V3err(X509V3_F_V2I_AUTHORITY_INFO_ACCESS,X509V3_R_INVALID_SYNTAX); 156 X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,X509V3_R_INVALID_SYNTAX);
157 goto err; 157 goto err;
158 } 158 }
159 objlen = ptmp - cnf->name; 159 objlen = ptmp - cnf->name;
160 ctmp.name = ptmp + 1; 160 ctmp.name = ptmp + 1;
161 ctmp.value = cnf->value; 161 ctmp.value = cnf->value;
162 if(!v2i_GENERAL_NAME_ex(acc->location, method, ctx, &ctmp, 0)) 162 GENERAL_NAME_free(acc->location);
163 if(!(acc->location = v2i_GENERAL_NAME(method, ctx, &ctmp)))
163 goto err; 164 goto err;
164 if(!(objtmp = OPENSSL_malloc(objlen + 1))) { 165 if(!(objtmp = OPENSSL_malloc(objlen + 1))) {
165 X509V3err(X509V3_F_V2I_AUTHORITY_INFO_ACCESS,ERR_R_MALLOC_FAILURE); 166 X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,ERR_R_MALLOC_FAILURE);
166 goto err; 167 goto err;
167 } 168 }
168 strncpy(objtmp, cnf->name, objlen); 169 strncpy(objtmp, cnf->name, objlen);
169 objtmp[objlen] = 0; 170 objtmp[objlen] = 0;
170 acc->method = OBJ_txt2obj(objtmp, 0); 171 acc->method = OBJ_txt2obj(objtmp, 0);
171 if(!acc->method) { 172 if(!acc->method) {
172 X509V3err(X509V3_F_V2I_AUTHORITY_INFO_ACCESS,X509V3_R_BAD_OBJECT); 173 X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,X509V3_R_BAD_OBJECT);
173 ERR_add_error_data(2, "value=", objtmp); 174 ERR_add_error_data(2, "value=", objtmp);
174 OPENSSL_free(objtmp); 175 OPENSSL_free(objtmp);
175 goto err; 176 goto err;