char *ext_str = NULL, *p, *value = NULL;
char *ext_str = NULL, *value = NULL; unsigned char *p;
int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, int flag, int indent){	char *ext_str = NULL, *p, *value = NULL;	X509V3_EXT_METHOD *method;		STACK *nval = NULL;	int ok = 1;	if(!(method = X509V3_EXT_get(ext))) return 0;	p = ext->value->data;	if(!(ext_str = method->d2i(NULL, &p, ext->value->length))) return 0;	if(method->i2s) {		if(!(value = method->i2s(method, ext_str))) {			ok = 0;			goto err;		}		BIO_printf(out, "%*s%s", indent, "", value);	} else if(method->i2v) {		if(!(nval = method->i2v(method, ext_str, NULL))) {			ok = 0;			goto err;		}		X509V3_EXT_val_prn(out, nval, indent,				 method->ext_flags & X509V3_EXT_MULTILINE);	} else if(method->i2r) {		if(!method->i2r(method, ext_str, out, indent)) ok = 0;	} else ok = 0;	err:		sk_pop_free(nval, X509V3_conf_free);		if(value) Free(value);		method->ext_free(ext_str);		return ok;}