if (cert == NULL) {  cert = PK11_FindCertFromNickname(name, NULL); }
CERT_SetOCSPDefaultResponder(CERTCertDBHandle *handle,			     const char *url, const char *name){    CERTCertificate *cert;    ocspCheckingContext *statusContext;    char *url_copy = NULL;    char *name_copy = NULL;    SECStatus rv;    if (handle == NULL || url == NULL || name == NULL) {	/*	 * XXX When interface is exported, probably want better errors;	 * perhaps different one for each parameter.	 */	PORT_SetError(SEC_ERROR_INVALID_ARGS);	return SECFailure;    }    /*     * Find the certificate for the specified nickname.  Do this first     * because it seems the most likely to fail.     *     * XXX Shouldn't need that cast if the FindCertByNickname interface     * used const to convey that it does not modify the name.  Maybe someday.     */    cert = CERT_FindCertByNickname(handle, (char *) name);    if (cert == NULL)	return SECFailure;    /*     * Make a copy of the url and nickname.     */    url_copy = PORT_Strdup(url);    name_copy = PORT_Strdup(name);    if (url_copy == NULL || name_copy == NULL) {	rv = SECFailure;	goto loser;    }    statusContext = ocsp_GetCheckingContext(handle);    /*     * Allocate and init the context if it doesn't already exist.     */    if (statusContext == NULL) {	rv = ocsp_InitStatusChecking(handle);	if (rv != SECSuccess)	    goto loser;	statusContext = ocsp_GetCheckingContext(handle);	PORT_Assert(statusContext != NULL);	/* extreme paranoia */    }    /*     * Note -- we do not touch the status context until after all of     * the steps which could cause errors.  If something goes wrong,     * we want to leave things as they were.     */    /*     * Get rid of old url and name if there.     */    if (statusContext->defaultResponderNickname != NULL)	PORT_Free(statusContext->defaultResponderNickname);    if (statusContext->defaultResponderURI != NULL)	PORT_Free(statusContext->defaultResponderURI);    /*     * And replace them with the new ones.     */    statusContext->defaultResponderURI = url_copy;    statusContext->defaultResponderNickname = name_copy;    /*     * If there was already a cert in place, get rid of it and replace it.     * Otherwise, we are not currently enabled, so we don't want to save it;     * it will get re-found and set whenever use of a default responder is     * enabled.     */    if (statusContext->defaultResponderCert != NULL) {	CERT_DestroyCertificate(statusContext->defaultResponderCert);	statusContext->defaultResponderCert = cert;    } else {	PORT_Assert(statusContext->useDefaultResponder == PR_FALSE);	CERT_DestroyCertificate(cert);    }    return SECSuccess;loser:    CERT_DestroyCertificate(cert);    if (url_copy != NULL)	PORT_Free(url_copy);    if (name_copy != NULL)	PORT_Free(name_copy);    return rv;}