rv = AppendStr(&strBuf, ", ");
rv = AppendStr(&strBuf, newRDN ? "," : "+");
CERT_NameToAscii(CERTName *name){    SECStatus rv;    CERTRDN** rdns;    CERTRDN** lastRdn;    CERTRDN** rdn;    CERTAVA** avas;    CERTAVA* ava;    PRBool first = PR_TRUE;    stringBuf strBuf = { NULL, 0, 0 };        rdns = name->rdns;    if (rdns == NULL) {	return NULL;    }        /* find last RDN */    lastRdn = rdns;    while (*lastRdn) lastRdn++;    lastRdn--;        /*     * Loop over name contents in _reverse_ RDN order appending to string     */    for (rdn = lastRdn; rdn >= rdns; rdn--) {	avas = (*rdn)->avas;	while ((ava = *avas++) != NULL) {	    /* Put in comma separator */	    if (!first) {		rv = AppendStr(&strBuf, ", ");		if (rv) goto loser;	    } else {		first = PR_FALSE;	    }	    	    /* Add in tag type plus value into buf */	    rv = AppendAVA(&strBuf, ava);	    if (rv) goto loser;	}    }    return strBuf.buffer;  loser:    if (strBuf.buffer) {	PORT_Free(strBuf.buffer);    }    return NULL;}