Exemple #1
0
static int
x509_name_ex_new(ASN1_VALUE **val, const ASN1_ITEM *it)
{
	X509_NAME *ret = NULL;

	ret = malloc(sizeof(X509_NAME));
	if (!ret)
		goto memerr;
	if ((ret->entries = sk_X509_NAME_ENTRY_new_null()) == NULL)
		goto memerr;
	if ((ret->bytes = BUF_MEM_new()) == NULL)
		goto memerr;
	ret->canon_enc = NULL;
	ret->canon_enclen = 0;
	ret->modified = 1;
	*val = (ASN1_VALUE *)ret;
	return 1;

memerr:
	ASN1err(ASN1_F_X509_NAME_EX_NEW, ERR_R_MALLOC_FAILURE);
	if (ret) {
		if (ret->entries)
			sk_X509_NAME_ENTRY_free(ret->entries);
		free(ret);
	}
	return 0;
}
X509_NAME *X509_NAME_new(void)
{
    X509_NAME *ret=NULL;
    ASN1_CTX c;

    M_ASN1_New_Malloc(ret,X509_NAME);
    if ((ret->entries=sk_X509_NAME_ENTRY_new_null()) == NULL)
    {
        c.line=__LINE__;
        goto err2;
    }
    M_ASN1_New(ret->bytes,BUF_MEM_new);
    ret->modified=1;
    return(ret);
    M_ASN1_New_Error(ASN1_F_X509_NAME_NEW);
}