rv = SEC_ASN1DecodeItem(arena, policies, CERT_CertificatePoliciesTemplate,
rv = SEC_QuickDERDecodeItem(arena, policies, CERT_CertificatePoliciesTemplate,
CERT_DecodeCertificatePoliciesExtension(SECItem *extnValue){    PRArenaPool *arena = NULL;    SECStatus rv;    CERTCertificatePolicies *policies;    CERTPolicyInfo **policyInfos, *policyInfo;    CERTPolicyQualifier **policyQualifiers, *policyQualifier;        /* make a new arena */    arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);        if ( !arena ) {	goto loser;    }    /* allocate the certifiate policies structure */    policies = (CERTCertificatePolicies *)	PORT_ArenaZAlloc(arena, sizeof(CERTCertificatePolicies));        if ( policies == NULL ) {	goto loser;    }        policies->arena = arena;    /* decode the policy info */    rv = SEC_ASN1DecodeItem(arena, policies, CERT_CertificatePoliciesTemplate,			    extnValue);    if ( rv != SECSuccess ) {	goto loser;    }    /* initialize the oid tags */    policyInfos = policies->policyInfos;    while (*policyInfos != NULL ) {	policyInfo = *policyInfos;	policyInfo->oid = SECOID_FindOIDTag(&policyInfo->policyID);	policyQualifiers = policyInfo->policyQualifiers;	while ( *policyQualifiers != NULL ) {	    policyQualifier = *policyQualifiers;	    policyQualifier->oid =		SECOID_FindOIDTag(&policyQualifier->qualifierID);	    policyQualifiers++;	}	policyInfos++;    }    return(policies);    loser:    if ( arena != NULL ) {	PORT_FreeArena(arena, PR_FALSE);    }        return(NULL);}