va_end(ap);
CERT_CreateName(CERTRDN *rdn0, ...){    CERTRDN *rdn;    CERTName *name;    va_list ap;    unsigned count;    CERTRDN **rdnp;    PRArenaPool *arena;        arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);    if ( !arena ) {	return(0);    }        name = (CERTName*) PORT_ArenaAlloc(arena, sizeof(CERTName));    if (name) {	name->arena = arena;		/* Count number of RDNs going into the Name */	count = 1;	va_start(ap, rdn0);	while ((rdn = va_arg(ap, CERTRDN*)) != 0) {	    count++;	}	va_end(ap);	/* Now fill in the pointers */	name->rdns = rdnp =	    (CERTRDN**) PORT_ArenaAlloc(arena, (count + 1) * sizeof(CERTRDN*));	if (!name->rdns) {	    goto loser;	}	*rdnp++ = rdn0;	va_start(ap, rdn0);	while ((rdn = va_arg(ap, CERTRDN*)) != 0) {	    *rdnp++ = rdn;	}	va_end(ap);	*rdnp++ = 0;    }    return name;loser:    PORT_FreeArena(arena, PR_FALSE);    return(0);}