summaryrefslogtreecommitdiffstats
path: root/security/manager/ssl/nsNSSComponent.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2020-03-16 13:38:19 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-04-14 13:11:05 +0200
commit899e14e94569ef668fdf10152d6c7296a6be4daa (patch)
tree72f5cf75a85c0a63506120829b1b21058ba82fbf /security/manager/ssl/nsNSSComponent.cpp
parent03fda9f0f34a92f7b7620f614983f69d0a69faa3 (diff)
downloadUXP-899e14e94569ef668fdf10152d6c7296a6be4daa.tar
UXP-899e14e94569ef668fdf10152d6c7296a6be4daa.tar.gz
UXP-899e14e94569ef668fdf10152d6c7296a6be4daa.tar.lz
UXP-899e14e94569ef668fdf10152d6c7296a6be4daa.tar.xz
UXP-899e14e94569ef668fdf10152d6c7296a6be4daa.zip
Issue #1467 - Part 1: Set up conditional NSS-SQL builds.
- Adds buildconfig option --enable-nss-sqlstore - Prefixes NSS dbinit with either sql: or dbm: depending on config - Pre-initializes mozStorage when NSS-SQL storage is used to prevent an sqlite3_config race in NSS Init
Diffstat (limited to 'security/manager/ssl/nsNSSComponent.cpp')
-rw-r--r--security/manager/ssl/nsNSSComponent.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
index dfff59da9..d505b8aba 100644
--- a/security/manager/ssl/nsNSSComponent.cpp
+++ b/security/manager/ssl/nsNSSComponent.cpp
@@ -12,6 +12,9 @@
#include "SharedSSLState.h"
#include "cert.h"
#include "certdb.h"
+#ifdef NSS_SQLSTORE
+#include "mozStorageCID.h"
+#endif
#include "mozilla/ArrayUtils.h"
#include "mozilla/Casting.h"
#include "mozilla/Preferences.h"
@@ -1970,6 +1973,14 @@ nsNSSComponent::Init()
return NS_ERROR_NOT_SAME_THREAD;
}
+#ifdef NSS_SQLSTORE
+ // To avoid an sqlite3_config race in NSS init, we require the storage service to get initialized first.
+ nsCOMPtr<nsISupports> storageService = do_GetService(MOZ_STORAGE_SERVICE_CONTRACTID);
+ if (!storageService) {
+ return NS_ERROR_NOT_AVAILABLE;
+ }
+#endif
+
nsresult rv = NS_OK;
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("Beginning NSS initialization\n"));