diff options
author | wtchang%redhat.com <devnull@localhost> | 2005-01-04 18:20:00 +0000 |
---|---|---|
committer | wtchang%redhat.com <devnull@localhost> | 2005-01-04 18:20:00 +0000 |
commit | 189a2e69ede1fce42311a40b4b0fb5bced3d27fd (patch) | |
tree | d9232a66a5fd795502c359300e38c74bd5bfd99e | |
parent | 209f4b4176edd5d4e1676643f71b0dd6dd231954 (diff) | |
download | nss-hg-189a2e69ede1fce42311a40b4b0fb5bced3d27fd.tar.gz |
Bugzilla bug 273624: fixed the regression (from NSS 3.3.x) that
NSS_Initialize didn't report the SEC_ERROR_BAD_DATABASE error if
the NSS databases haven't been created. r=nelsonb,relyea.
Modified Files: pk11wrap/pk11err.c pk11wrap/pk11load.c
softoken/dbinit.c softoken/pkcs11n.h
-rw-r--r-- | security/nss/lib/pk11wrap/pk11err.c | 2 | ||||
-rw-r--r-- | security/nss/lib/pk11wrap/pk11load.c | 4 | ||||
-rw-r--r-- | security/nss/lib/softoken/dbinit.c | 9 | ||||
-rw-r--r-- | security/nss/lib/softoken/pkcs11n.h | 3 |
4 files changed, 10 insertions, 8 deletions
diff --git a/security/nss/lib/pk11wrap/pk11err.c b/security/nss/lib/pk11wrap/pk11err.c index 589ec8265..28559d8d8 100644 --- a/security/nss/lib/pk11wrap/pk11err.c +++ b/security/nss/lib/pk11wrap/pk11err.c @@ -122,6 +122,8 @@ PK11_MapError(CK_RV rv) { MAPERROR(CKR_WRAPPING_KEY_SIZE_RANGE, SEC_ERROR_INVALID_KEY) MAPERROR(CKR_WRAPPING_KEY_TYPE_INCONSISTENT, SEC_ERROR_INVALID_KEY) MAPERROR(CKR_VENDOR_DEFINED, SEC_ERROR_LIBRARY_FAILURE) + MAPERROR(CKR_NETSCAPE_CERTDB_FAILED, SEC_ERROR_BAD_DATABASE) + MAPERROR(CKR_NETSCAPE_KEYDB_FAILED, SEC_ERROR_BAD_DATABASE) #ifdef PK11_ERROR_USE_ARRAY diff --git a/security/nss/lib/pk11wrap/pk11load.c b/security/nss/lib/pk11wrap/pk11load.c index a94e6cbf0..0906fc5f7 100644 --- a/security/nss/lib/pk11wrap/pk11load.c +++ b/security/nss/lib/pk11wrap/pk11load.c @@ -111,7 +111,9 @@ secmod_ModuleInit(SECMODModule *mod) } crv = PK11_GETTAB(mod)->C_Initialize(pInitArgs); if (crv != CKR_OK) { - if (pInitArgs == NULL) { + if (pInitArgs == NULL || + crv == CKR_NETSCAPE_CERTDB_FAILED || + crv == CKR_NETSCAPE_KEYDB_FAILED) { PORT_SetError(PK11_MapError(crv)); return SECFailure; } diff --git a/security/nss/lib/softoken/dbinit.c b/security/nss/lib/softoken/dbinit.c index 7d3cca6cd..f59e5ca69 100644 --- a/security/nss/lib/softoken/dbinit.c +++ b/security/nss/lib/softoken/dbinit.c @@ -118,11 +118,6 @@ pk11_keydb_name_cb(void *arg, int dbVersion) return dbname; } -/* for now... we need to define vendor specific codes here. - */ -#define CKR_CERTDB_FAILED CKR_DEVICE_ERROR -#define CKR_KEYDB_FAILED CKR_DEVICE_ERROR - const char * pk11_EvaluateConfigDir(const char *configdir,char **appName) { @@ -151,7 +146,7 @@ pk11_OpenCertDB(const char * configdir, const char *prefix, PRBool readOnly, NSSLOWCERTCertDBHandle **certdbPtr) { NSSLOWCERTCertDBHandle *certdb = NULL; - CK_RV crv = CKR_CERTDB_FAILED; + CK_RV crv = CKR_NETSCAPE_CERTDB_FAILED; SECStatus rv; char * name = NULL; char * appName = NULL; @@ -205,7 +200,7 @@ pk11_OpenKeyDB(const char * configdir, const char *prefix, PRBool readOnly, PR_smprintf_free(name); if (appName) PORT_Free(appName); if (keydb == NULL) - return CKR_KEYDB_FAILED; + return CKR_NETSCAPE_KEYDB_FAILED; *keydbPtr = keydb; return CKR_OK; diff --git a/security/nss/lib/softoken/pkcs11n.h b/security/nss/lib/softoken/pkcs11n.h index b4109f89f..f85509da6 100644 --- a/security/nss/lib/softoken/pkcs11n.h +++ b/security/nss/lib/softoken/pkcs11n.h @@ -180,6 +180,9 @@ static const char CKT_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$"; */ #define CKR_NETSCAPE (CKM_VENDOR_DEFINED|NSSCK_VENDOR_NETSCAPE) +#define CKR_NETSCAPE_CERTDB_FAILED (CKR_NETSCAPE + 1) +#define CKR_NETSCAPE_KEYDB_FAILED (CKR_NETSCAPE + 2) + /* * Trust info * |