Index: crypto/scoped_test_nss_db.cc |
diff --git a/crypto/scoped_test_nss_db.cc b/crypto/scoped_test_nss_db.cc |
index a3ff68b8b16dd2506f75f2f379c3a431b5e92575..452c26d73e50500dd820b58f3821387404414448 100644 |
--- a/crypto/scoped_test_nss_db.cc |
+++ b/crypto/scoped_test_nss_db.cc |
@@ -29,17 +29,22 @@ ScopedTestNSSDB::~ScopedTestNSSDB() { |
// Don't close when NSS is < 3.15.1, because it would require an additional |
// sleep for 1 second after closing the database, due to |
// http://bugzil.la/875601. |
- if (!NSS_VersionCheck("3.15.1") || !slot_) |
+ if (!NSS_VersionCheck("3.15.1")) { |
+ LOG(ERROR) << "NSS version is < 3.15.1, test DB will not be closed."; |
+ temp_dir_.Take(); |
return; |
+ } |
// NSS is allowed to do IO on the current thread since dispatching |
// to a dedicated thread would still have the affect of blocking |
// the current thread, due to NSS's internal locking requirements |
base::ThreadRestrictions::ScopedAllowIO allow_io; |
- SECStatus status = SECMOD_CloseUserDB(slot_.get()); |
- if (status != SECSuccess) |
- PLOG(ERROR) << "SECMOD_CloseUserDB failed: " << PORT_GetError(); |
+ if (slot_) { |
+ SECStatus status = SECMOD_CloseUserDB(slot_.get()); |
+ if (status != SECSuccess) |
+ PLOG(ERROR) << "SECMOD_CloseUserDB failed: " << PORT_GetError(); |
+ } |
if (!temp_dir_.Delete()) |
LOG(ERROR) << "Could not delete temporary directory."; |