summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralexei.volkov.bugs%sun.com <devnull@localhost>2007-09-19 19:29:47 +0000
committeralexei.volkov.bugs%sun.com <devnull@localhost>2007-09-19 19:29:47 +0000
commit26b8b18a235231e9cc0e070392ca28b1a39c23af (patch)
treeb11854fca2f9c7bfe12799a0dd1b68f1b9e9e5de
parent59a25040a9d1cc260ff4dbc4574ea07dcb6ec149 (diff)
downloadnss-hg-26b8b18a235231e9cc0e070392ca28b1a39c23af.tar.gz
395427 - PKIX_PL_Initialize must not call NSS_Init. r=nelson
-rwxr-xr-xsecurity/nss/lib/libpkix/include/pkix.h28
-rwxr-xr-xsecurity/nss/lib/libpkix/include/pkix_pl_system.h4
-rwxr-xr-xsecurity/nss/lib/libpkix/pkix/top/pkix_lifecycle.c35
-rwxr-xr-xsecurity/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c28
-rw-r--r--security/nss/lib/nss/nssinit.c8
5 files changed, 9 insertions, 94 deletions
diff --git a/security/nss/lib/libpkix/include/pkix.h b/security/nss/lib/libpkix/include/pkix.h
index 5a0e20e8b..bae5daf70 100755
--- a/security/nss/lib/libpkix/include/pkix.h
+++ b/security/nss/lib/libpkix/include/pkix.h
@@ -171,34 +171,6 @@ PKIX_Error *
PKIX_Shutdown(void *plContext);
/*
- * FUNCTION: PKIX_Initialize_SetConfigDir
- * DESCRIPTION:
- *
- * This function initializes the configuration directory for "storeType" to
- * the ascii value of "configDirString".
- *
- * PARAMETERS:
- * "storeType"
- * Type of the Cert Store location for initialization.
- * "configDir"
- * Address of char where the Cert Store location is retrieved.
- * Must be non-NULL.
- * "plContext"
- * Platform-specific context pointer.
- * THREAD SAFETY:
- * Not Thread Safe
- * RETURNS:
- * Returns NULL if the function succeeds.
- * Returns an Initialize Error if the function fails in a non-fatal way.
- * Returns a Fatal Error if the function fails in an unrecoverable way.
- */
-PKIX_Error *
-PKIX_Initialize_SetConfigDir(
- PKIX_UInt32 storeType,
- char *configDir,
- void *plContext);
-
-/*
* FUNCTION: PKIX_ValidateChain
* DESCRIPTION:
*
diff --git a/security/nss/lib/libpkix/include/pkix_pl_system.h b/security/nss/lib/libpkix/include/pkix_pl_system.h
index 7c3faca39..e43c31225 100755
--- a/security/nss/lib/libpkix/include/pkix_pl_system.h
+++ b/security/nss/lib/libpkix/include/pkix_pl_system.h
@@ -153,9 +153,7 @@ PKIX_PL_Initialize(
* Returns a Fatal Error if the function fails in an unrecoverable way.
*/
PKIX_Error *
-PKIX_PL_Shutdown(
- PKIX_Boolean platformInitNeeded,
- void *plContext);
+PKIX_PL_Shutdown(void *plContext);
/* standard memory management operations (not reference-counted) */
diff --git a/security/nss/lib/libpkix/pkix/top/pkix_lifecycle.c b/security/nss/lib/libpkix/pkix/top/pkix_lifecycle.c
index c6ff8dbe0..e80016f3f 100755
--- a/security/nss/lib/libpkix/pkix/top/pkix_lifecycle.c
+++ b/security/nss/lib/libpkix/pkix/top/pkix_lifecycle.c
@@ -44,9 +44,7 @@
#include "pkix_lifecycle.h"
static PKIX_Boolean pkixIsInitialized = PKIX_FALSE;
-static PKIX_Boolean pkixPlatformInit = PKIX_FALSE;
static PKIX_Boolean pkixInitInProgress = PKIX_FALSE;
-char *pkix_PK11ConfigDir = NULL;
/* Lock used by Logger - is reentrant by the same thread */
extern PKIX_PL_MonitorLock *pkixLoggerLock;
@@ -122,7 +120,6 @@ PKIX_Initialize(
}
pkixInitInProgress = PKIX_TRUE;
- pkixPlatformInit = platformInitNeeded; /* remember this for shutdown */
PKIX_CHECK(PKIX_PL_Initialize
(platformInitNeeded, useArenas, &plContext),
@@ -143,7 +140,6 @@ PKIX_Initialize(
pkixInitInProgress = PKIX_FALSE;
pkixIsInitialized = PKIX_TRUE;
- pkix_PK11ConfigDir = NULL;
/* Create Cache Tables */
PKIX_CHECK(PKIX_PL_HashTable_Create
@@ -186,35 +182,6 @@ cleanup:
}
/*
- * FUNCTION: PKIX_Initialize_SetConfigDir (see comments in pkix.h)
- */
-PKIX_Error *
-PKIX_Initialize_SetConfigDir(
- PKIX_UInt32 storeType,
- char *configDir,
- void *plContext)
-{
- PKIX_ENTER(LIFECYCLE, "PKIX_Initialize_SetConfigDir");
- PKIX_NULLCHECK_ONE(configDir);
-
- switch(storeType) {
-
- case PKIX_STORE_TYPE_PK11:
-
- pkix_PK11ConfigDir = configDir;
- break;
-
- default:
- PKIX_ERROR(PKIX_INVALIDSTORETYPEFORSETTINGCONFIGDIR);
- break;
- }
-
-cleanup:
-
- PKIX_RETURN(LIFECYCLE);
-}
-
-/*
* FUNCTION: PKIX_Shutdown (see comments in pkix.h)
*/
PKIX_Error *
@@ -252,7 +219,7 @@ PKIX_Shutdown(void *plContext)
PKIX_DECREF(aiaConnectionCache);
PKIX_DECREF(httpSocketCache);
- PKIX_CHECK(PKIX_PL_Shutdown(pkixPlatformInit, plContext),
+ PKIX_CHECK(PKIX_PL_Shutdown(plContext),
PKIX_SHUTDOWNFAILED);
pkixIsInitialized = PKIX_FALSE;
diff --git a/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c b/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
index 55712a841..e5c7791d7 100755
--- a/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
+++ b/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
@@ -43,7 +43,6 @@
#include "pkix_pl_lifecycle.h"
-extern char *pkix_PK11ConfigDir;
PKIX_Boolean pkix_pl_initialized = PKIX_FALSE;
pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES];
PRLock *classTableLock;
@@ -112,24 +111,6 @@ PKIX_PL_Initialize(
if (pkix_pl_initialized) return (PKIX_ALLOC_ERROR());
- if (platformInitNeeded) {
-
- /* Initialize NSPR and NSS. */
- PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1);
-
- /* if using databases, use NSS_Init and not NSS_NoDB_Init */
- if (pkix_PK11ConfigDir) {
- if (NSS_Init(pkix_PK11ConfigDir) != SECSuccess) {
- return (PKIX_ALLOC_ERROR());
- }
- } else {
- if (NSS_NoDB_Init(NULL) != 0){
- return (PKIX_ALLOC_ERROR());
- }
- }
- }
-
- PKIX_OBJECT_DEBUG("\tCalling PR_NewLock).\n");
classTableLock = PR_NewLock();
if (classTableLock == NULL) return (PKIX_ALLOC_ERROR());
@@ -235,9 +216,7 @@ cleanup:
* PKIX_PL_Shutdown (see comments in pkix_pl_system.h)
*/
PKIX_Error *
-PKIX_PL_Shutdown(
- PKIX_Boolean platformInitNeeded,
- void *plContext)
+PKIX_PL_Shutdown(void *plContext)
{
PKIX_ENTER(OBJECT, "PKIX_PL_Shutdown");
@@ -247,11 +226,6 @@ PKIX_PL_Shutdown(
PKIX_PL_NssContext_Destroy(plContext);
}
- /* Shut down NSS only if we initialized it */
- if (platformInitNeeded) {
- NSS_Shutdown();
- }
-
pkix_pl_initialized = PKIX_FALSE;
PKIX_RETURN(OBJECT);
diff --git a/security/nss/lib/nss/nssinit.c b/security/nss/lib/nss/nssinit.c
index 04238c9c7..a686f7ec6 100644
--- a/security/nss/lib/nss/nssinit.c
+++ b/security/nss/lib/nss/nssinit.c
@@ -811,7 +811,13 @@ NSS_Shutdown(void)
}
ShutdownCRLCache();
OCSP_ShutdownCache();
+
+/* ifdef PKIX_Shutdown until bug 391815(undetected leaks by NSS leak testing)
+ * is fixed */
+#ifdef BUILD_LIBPKIX_TESTS
PKIX_Shutdown(plContext);
+#endif /* BUILD_LIBPKIX_TESTS */
+
SECOID_Shutdown();
status = STAN_Shutdown();
cert_DestroySubjectKeyIDHashTable();
@@ -892,5 +898,3 @@ NSS_VersionCheck(const char *importedVersion)
}
return PR_TRUE;
}
-
-