From dc36c9c5d3ed41c8ae02efcde9a5b71a1246d3d3 Mon Sep 17 00:00:00 2001
From: "evan@chromium.org"
 <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Date: Wed, 20 Jan 2010 20:45:00 +0000
Subject: linux: abort unless we have the proper version of NSS

BUG=26448, 27948 and others

Review URL: http://codereview.chromium.org/548090

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36669 0039d316-1c4b-4281-b951-d872f2087c98
---
 base/nss_util.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)

(limited to 'base')

diff --git a/base/nss_util.cc b/base/nss_util.cc
index 757b437..2f7ff7f 100644
--- a/base/nss_util.cc
+++ b/base/nss_util.cc
@@ -73,6 +73,16 @@ class NSSInitSingleton {
   NSSInitSingleton() {
     base::EnsureNSPRInit();
 
+    // We *must* have NSS >= 3.12.3.  See bug 26448.
+    COMPILE_ASSERT(
+        (NSS_VMAJOR == 3 && NSS_VMINOR == 12 && NSS_VPATCH >= 3) ||
+        (NSS_VMAJOR == 3 && NSS_VMINOR > 12) ||
+        (NSS_VMAJOR > 3),
+        nss_version_check_failed);
+    // Also check the run-time NSS version.
+    // NSS_VersionCheck is a >= check, not strict equality.
+    CHECK(NSS_VersionCheck("3.12.3")) << "We depend on NSS >= 3.12.3";
+
     SECStatus status = SECFailure;
     std::string database_dir = GetDefaultConfigDirectory();
     if (!database_dir.empty()) {
-- 
cgit v1.1