From b7c21d553d8e5f8d0370a0b43485b84b251f7839 Mon Sep 17 00:00:00 2001 From: "relyea%netscape.com" Date: Thu, 6 Sep 2001 21:06:39 +0000 Subject: [PATCH] 1) fix bug in module deletion. 2) Add new function in modutil to desplay the raw PKCS #11 module strings --- security/nss/lib/pk11wrap/pk11pars.c | 11 +++++++---- security/nss/lib/pk11wrap/pk11util.c | 8 +++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/security/nss/lib/pk11wrap/pk11pars.c b/security/nss/lib/pk11wrap/pk11pars.c index 3e2bc3508ae..951077e6ac9 100644 --- a/security/nss/lib/pk11wrap/pk11pars.c +++ b/security/nss/lib/pk11wrap/pk11pars.c @@ -181,14 +181,17 @@ SECStatus pk11_DeletePermDB(SECMODModule *module) { SECMODModuleDBFunc func; + char *moduleSpec; char **retString; if (module->parent == NULL) return SECFailure; func = (SECMODModuleDBFunc) module->parent->moduleDBFunc; if (func) { + moduleSpec = pk11_mkModuleSpec(module); retString = (*func)(SECMOD_MODULE_DB_FUNCTION_DEL, - module->parent->libraryParams,module->commonName); + module->parent->libraryParams,moduleSpec); + PORT_Free(moduleSpec); if (retString != NULL) return SECSuccess; } return SECFailure; @@ -205,7 +208,7 @@ pk11_freeModuleSpecList(char **moduleSpecList) } SECStatus -PK11_LoadPKCS11Module(char *modulespec,SECMODModule *parent) +PK11_LoadPKCS11Module(char *modulespec,SECMODModule *parent, PRBool recurse) { char *library = NULL, *moduleName = NULL, *parameters = NULL, *nss= NULL; SECStatus status; @@ -233,14 +236,14 @@ PK11_LoadPKCS11Module(char *modulespec,SECMODModule *parent) goto loser; } - if (module->isModuleDB) { + if (recurse && module->isModuleDB) { char ** moduleSpecList; char **index; moduleSpecList = pk11_getModuleSpecList(module); for (index = moduleSpecList; index && *index; index++) { - rv = PK11_LoadPKCS11Module(*index,module); + rv = PK11_LoadPKCS11Module(*index,module,PR_TRUE); if (rv != SECSuccess) break; } diff --git a/security/nss/lib/pk11wrap/pk11util.c b/security/nss/lib/pk11wrap/pk11util.c index 61f1cfbb2c9..27302842ba0 100644 --- a/security/nss/lib/pk11wrap/pk11util.c +++ b/security/nss/lib/pk11wrap/pk11util.c @@ -249,6 +249,12 @@ SECMOD_AddModuleToDBOnlyList(SECMODModule *newModule) { return secmod_AddModuleToList(&modulesDB,newModule); } +SECMODModule * +SECMOD_GetDefaultDBModule(void) +{ + return SECMOD_ReferenceModule(defaultDBModule); +} + /* * get the list of PKCS11 modules that are available. */ @@ -416,7 +422,7 @@ SECMOD_DeleteInternalModule(char *name) { internalModule = SECMOD_ReferenceModule(newModule); SECMOD_AddModule(internalModule); SECMOD_DestroyModule(oldModule); - SECMOD_DeletePermDB(mlp->module); + pk11_DeletePermDB(mlp->module); SECMOD_DestroyModuleListElement(mlp); } return rv;