| author | Mike Perry <mikeperry-git@torproject.org> |
| Wed, 10 Jun 2015 14:14:00 +0200 | |
| changeset 248293 | 5d47d1ff7e56239b3e12e38825e2748383e7a3b8 |
| parent 248292 | d263646f22c02c540b5da295be78a57b081e5f4b |
| child 248294 | a78836138b82c0c99b7ad6028562883aa29fa3cd |
| push id | 28893 |
| push user | kwierso@gmail.com |
| push date | Fri, 12 Jun 2015 00:02:58 +0000 |
| treeherder | mozilla-central@8cf9d3e497f9 [default view] [failures only] |
| perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
| reviewers | keeler |
| bugs | 629558 |
| milestone | 41.0a1 |
| first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
| last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/security/manager/ssl/nsNSSComponent.cpp +++ b/security/manager/ssl/nsNSSComponent.cpp @@ -1011,32 +1011,34 @@ nsNSSComponent::InitializeNSS() nsAutoCString profileStr; nsresult rv = GetNSSProfilePath(profileStr); if (NS_FAILED(rv)) { nsPSMInitPanic::SetPanic(); return NS_ERROR_NOT_AVAILABLE; } SECStatus init_rv = SECFailure; - if (!profileStr.IsEmpty()) { + bool nocertdb = Preferences::GetBool("security.nocertdb", false); + + if (!nocertdb && !profileStr.IsEmpty()) { // First try to initialize the NSS DB in read/write mode. - SECStatus init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false); + init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false); // If that fails, attempt read-only mode. if (init_rv != SECSuccess) { MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init NSS r/w in %s\n", profileStr.get())); init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), true); } if (init_rv != SECSuccess) { MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init in r/o either\n")); } } // If we haven't succeeded in initializing the DB in our profile - // directory or we don't have a profile at all, attempt to initialize - // with no DB. - if (init_rv != SECSuccess) { + // directory or we don't have a profile at all, or the "security.nocertdb" + // pref has been set to "true", attempt to initialize with no DB. + if (nocertdb || init_rv != SECSuccess) { init_rv = NSS_NoDB_Init(nullptr); } if (init_rv != SECSuccess) { MOZ_LOG(gPIPNSSLog, LogLevel::Error, ("could not initialize NSS - panicking\n")); nsPSMInitPanic::SetPanic(); return NS_ERROR_NOT_AVAILABLE; }