STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, X509_ATTRIBUTE *attr)
STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) **x, const char *attrname, int type, const unsigned char *bytes, int len)
STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x,					 X509_ATTRIBUTE *attr){	X509_ATTRIBUTE *new_attr=NULL;	STACK_OF(X509_ATTRIBUTE) *sk=NULL;	if ((x != NULL) && (*x == NULL))		{		if ((sk=sk_X509_ATTRIBUTE_new_null()) == NULL)			goto err;		}	else		sk= *x;	if ((new_attr=X509_ATTRIBUTE_dup(attr)) == NULL)		goto err2;	if (!sk_X509_ATTRIBUTE_push(sk,new_attr))		goto err;	if ((x != NULL) && (*x == NULL))		*x=sk;	return(sk);err:	X509err(X509_F_X509_ADD_ATTR,ERR_R_MALLOC_FAILURE);err2:	if (new_attr != NULL) X509_ATTRIBUTE_free(new_attr);	if (sk != NULL) sk_X509_ATTRIBUTE_free(sk);	return(NULL);}