From 86da6c3acdfab8b8d7c4fa2374906d5660e4eae2 Mon Sep 17 00:00:00 2001 From: "smfr%smfr.org" Date: Sun, 4 Sep 2005 19:05:01 +0000 Subject: [PATCH] Fix bug 306795: nsNSSCertificateDB::IsCertTrusted() fails to check the return value from CERT_GetCertTrust(), so can return random trust bits. r=dougt, sr=rrelyea git-svn-id: svn://10.0.0.236/trunk@179634 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/security/manager/ssl/src/nsNSSCertificateDB.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mozilla/security/manager/ssl/src/nsNSSCertificateDB.cpp b/mozilla/security/manager/ssl/src/nsNSSCertificateDB.cpp index e232c886382..3d4b408874d 100644 --- a/mozilla/security/manager/ssl/src/nsNSSCertificateDB.cpp +++ b/mozilla/security/manager/ssl/src/nsNSSCertificateDB.cpp @@ -941,12 +941,18 @@ nsNSSCertificateDB::IsCertTrusted(nsIX509Cert *cert, PRUint32 trustType, PRBool *_isTrusted) { + NS_ENSURE_ARG_POINTER(_isTrusted); + *_isTrusted = PR_FALSE; + nsNSSShutDownPreventionLock locker; SECStatus srv; nsNSSCertificate *pipCert = NS_STATIC_CAST(nsNSSCertificate *, cert); CERTCertificate *nsscert = pipCert->GetCert(); CERTCertTrust nsstrust; srv = CERT_GetCertTrust(nsscert, &nsstrust); + if (srv != SECSuccess) + return NS_ERROR_FAILURE; + nsNSSCertTrust trust(&nsstrust); CERT_DestroyCertificate(nsscert); if (certType == nsIX509Cert::CA_CERT) {