reason=ERR_R_MALLOC_FAILURE;
DSAerr(DSA_F_DSA_PRINT,ERR_R_MALLOC_FAILURE);
int DSAparams_print(BIO *bp, const DSA *x)	{	unsigned char *m=NULL;	int reason=ERR_R_BUF_LIB,ret=0;	size_t buf_len=0,i;	if (x->p)		buf_len = (size_t)BN_num_bytes(x->p);	if (x->q)		if (buf_len < (i = (size_t)BN_num_bytes(x->q)))			buf_len = i;	if (x->g)		if (buf_len < (i = (size_t)BN_num_bytes(x->g)))			buf_len = i;	m=(unsigned char *)OPENSSL_malloc(buf_len+10);	if (m == NULL)		{		reason=ERR_R_MALLOC_FAILURE;		goto err;		}	if (BIO_printf(bp,"DSA-Parameters: (%d bit)\n",		BN_num_bits(x->p)) <= 0)		goto err;	if (!print(bp,"p:",x->p,m,4)) goto err;	if (!print(bp,"q:",x->q,m,4)) goto err;	if (!print(bp,"g:",x->g,m,4)) goto err;	ret=1;err:	if (m != NULL) OPENSSL_free(m);	DSAerr(DSA_F_DSAPARAMS_PRINT,reason);	return(ret);	}