| Index: mozilla/security/nss/lib/pk11wrap/pk11cert.c
|
| ===================================================================
|
| --- mozilla/security/nss/lib/pk11wrap/pk11cert.c (revision 180567)
|
| +++ mozilla/security/nss/lib/pk11wrap/pk11cert.c (working copy)
|
| @@ -324,7 +324,6 @@
|
| if (trust == NULL)
|
| goto loser;
|
| PORT_Memset(trust,0, sizeof(CERTCertTrust));
|
| - cert->trust = trust;
|
|
|
| if(! pk11_HandleTrustObject(slot, cert, trust) ) {
|
| unsigned int type;
|
| @@ -365,6 +364,10 @@
|
| trust->emailFlags |= CERTDB_USER;
|
| /* trust->objectSigningFlags |= CERTDB_USER; */
|
| }
|
| + CERT_LockCertTrust(cert);
|
| + cert->trust = trust;
|
| + CERT_UnlockCertTrust(cert);
|
| +
|
| return cert;
|
|
|
| loser:
|
| @@ -1410,6 +1413,7 @@
|
| NSSCMSRecipient *ri = NULL;
|
| int i;
|
| PRBool tokenRescanDone = PR_FALSE;
|
| + CERTCertTrust trust;
|
|
|
| for (i=0; (ri = recipientlist[i]) != NULL; i++) {
|
| CERTCertificate *cert = NULL;
|
| @@ -1490,8 +1494,8 @@
|
| }
|
| if (cert) {
|
| /* this isn't our cert */
|
| - if ((cert->trust == NULL) ||
|
| - ((cert->trust->emailFlags & CERTDB_USER) != CERTDB_USER)) {
|
| + if (CERT_GetCertTrust(cert, &trust) != SECSuccess ||
|
| + ((trust.emailFlags & CERTDB_USER) != CERTDB_USER)) {
|
| CERT_DestroyCertificate(cert);
|
| continue;
|
| }
|
| @@ -1550,6 +1554,7 @@
|
| SEC_PKCS7RecipientInfo **rip, void *pwarg)
|
| {
|
| SEC_PKCS7RecipientInfo *ri = NULL;
|
| + CERTCertTrust trust;
|
| int i;
|
|
|
| for (i=0; (ri = recipientArray[i]) != NULL; i++) {
|
| @@ -1559,8 +1564,8 @@
|
| pwarg);
|
| if (cert) {
|
| /* this isn't our cert */
|
| - if ((cert->trust == NULL) ||
|
| - ((cert->trust->emailFlags & CERTDB_USER) != CERTDB_USER)) {
|
| + if (CERT_GetCertTrust(cert, &trust) != SECSuccess ||
|
| + ((trust.emailFlags & CERTDB_USER) != CERTDB_USER)) {
|
| CERT_DestroyCertificate(cert);
|
| continue;
|
| }
|
| @@ -2260,9 +2265,10 @@
|
| {
|
| /* look at the subject and see if it is a KEA for MISSI key */
|
| SECOidData *oid;
|
| + CERTCertTrust trust;
|
|
|
| - if ((cert->trust == NULL) ||
|
| - ((cert->trust->sslFlags & CERTDB_USER) != CERTDB_USER)) {
|
| + if (CERT_GetCertTrust(cert, &trust) != SECSuccess ||
|
| + ((trust.sslFlags & CERTDB_USER) != CERTDB_USER)) {
|
| return PR_FALSE;
|
| }
|
|
|
|
|