rv = SEC_ASN1DecodeItem(arena, dest, ocsp_OCSPRequestTemplate, src);
rv = SEC_QuickDERDecodeItem(arena, dest, ocsp_OCSPRequestTemplate, src);
CERT_DecodeOCSPRequest(SECItem *src){    PRArenaPool *arena = NULL;    SECStatus rv = SECFailure;    CERTOCSPRequest *dest = NULL;    int i;    arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);    if (arena == NULL) {	goto loser;    }    dest = (CERTOCSPRequest *) PORT_ArenaZAlloc(arena, 						sizeof(CERTOCSPRequest));    if (dest == NULL) {	goto loser;    }    dest->arena = arena;    rv = SEC_ASN1DecodeItem(arena, dest, ocsp_OCSPRequestTemplate, src);    if (rv != SECSuccess) {	if (PORT_GetError() == SEC_ERROR_BAD_DER)	    PORT_SetError(SEC_ERROR_OCSP_MALFORMED_REQUEST);	goto loser;    }    /*     * XXX I would like to find a way to get rid of the necessity     * of doing this copying of the arena pointer.     */    for (i = 0; dest->tbsRequest->requestList[i] != NULL; i++) {	dest->tbsRequest->requestList[i]->arena = arena;    }    return dest;loser:    if (arena != NULL) {	PORT_FreeArena(arena, PR_FALSE);    }    return NULL;}