X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,X509V3_R_BAD_OBJECT);
X509V3err(X509V3_F_V2I_AUTHORITY_INFO_ACCESS,X509V3_R_BAD_OBJECT);
static AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method,				 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval){	AUTHORITY_INFO_ACCESS *ainfo = NULL;	CONF_VALUE *cnf, ctmp;	ACCESS_DESCRIPTION *acc;	int i, objlen;	char *objtmp, *ptmp;	if(!(ainfo = sk_ACCESS_DESCRIPTION_new_null())) {		X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,ERR_R_MALLOC_FAILURE);		return NULL;	}	for(i = 0; i < sk_CONF_VALUE_num(nval); i++) {		cnf = sk_CONF_VALUE_value(nval, i);		if(!(acc = ACCESS_DESCRIPTION_new())			|| !sk_ACCESS_DESCRIPTION_push(ainfo, acc)) {			X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,ERR_R_MALLOC_FAILURE);			goto err;		}		ptmp = strchr(cnf->name, ';');		if(!ptmp) {			X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,X509V3_R_INVALID_SYNTAX);			goto err;		}		objlen = ptmp - cnf->name;		ctmp.name = ptmp + 1;		ctmp.value = cnf->value;		if(!v2i_GENERAL_NAME_ex(acc->location, method, ctx, &ctmp, 0))								 goto err; 		if(!(objtmp = OPENSSL_malloc(objlen + 1))) {			X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,ERR_R_MALLOC_FAILURE);			goto err;		}		strncpy(objtmp, cnf->name, objlen);		objtmp[objlen] = 0;		acc->method = OBJ_txt2obj(objtmp, 0);		if(!acc->method) {			X509V3err(X509V3_F_V2I_ACCESS_DESCRIPTION,X509V3_R_BAD_OBJECT);			ERR_add_error_data(2, "value=", objtmp);			OPENSSL_free(objtmp);			goto err;		}		OPENSSL_free(objtmp);	}	return ainfo;	err:	sk_ACCESS_DESCRIPTION_pop_free(ainfo, ACCESS_DESCRIPTION_free);	return NULL;}