NSSItem s_ias = { (void *)buf, sizeof(buf) };
NSSItem s_ias; s_ias.data = (void *)buf; s_ias.size = sizeof(buf);
nssTrustDomain_RemoveCertFromCache(  NSSTrustDomain *td,  NSSCertificate *cert){    nssList *subjectList;    nssList *subjects;    NSSItem *ias;    unsigned char buf[128];    NSSItem s_ias = { (void *)buf, sizeof(buf) };    ias = get_static_ias(&s_ias, &cert->issuer, &cert->serial);    PZ_Lock(td->cache->lock);    if (nssHash_Exists(td->cache->issuerAndSN, &ias)) {	/* Whatchew talkin' bout, Willis? */#if 0	nss_SetError(NSS_ERROR_CERTIFICATE_NOT_IN_CACHE);#endif	if (s_ias.size == 0) {	    nss_ZFreeIf(ias);	}	PZ_Unlock(td->cache->lock);	return PR_FAILURE;    }    /* Remove the cert from the issuer/serial hash */    nssHash_Remove(td->cache->issuerAndSN, ias);    /* Get the subject list for the cert's subject */    subjectList = (nssList *)nssHash_Lookup(td->cache->subject, &cert->subject);    if (subjectList) {	/* Remove the cert from the subject hash */	nssList_Remove(subjectList, cert);	if (nssList_Count(subjectList) == 0) {	    /* No more certs for subject ... */	    nssHash_Remove(td->cache->nickname, &cert->nickname);	    /* Find the subject list in the email hash */	    subjects = (nssList *)nssHash_Lookup(td->cache->email, cert->email);	    if (subjects) {		/* Remove the subject list from the email hash */		nssList_Remove(subjects, subjectList);		if (nssList_Count(subjects) == 0) {		    /* No more subject lists for email, delete list and		     * remove hash entry		     */		    nssList_Destroy(subjects);		    nssHash_Remove(td->cache->email, cert->email);		}	    }	    /* ... so destroy the subject list and remove the hash entry */	    nssList_Destroy(subjectList);	    nssHash_Remove(td->cache->subject, &cert->subject);	}    }    if (s_ias.size == 0) {	nss_ZFreeIf(ias);    }    PZ_Unlock(td->cache->lock);    return PR_SUCCESS;}