summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroeber%netscape.com <devnull@localhost>2000-05-17 18:28:13 +0000
committerroeber%netscape.com <devnull@localhost>2000-05-17 18:28:13 +0000
commit19e40114414a391cfca1287fa8f3856bd66b8ee5 (patch)
tree84c9c8fd828dd9ee0d514062cb59316d7a4c7e14
parentcfa5feba243b962ee26b4a422017334527dc2aeb (diff)
downloadnss-hg-19e40114414a391cfca1287fa8f3856bd66b8ee5.tar.gz
If a database has not been given a label, return the filename so Communicator has *something* to show
-rw-r--r--security/nss/lib/ckfw/dbm/db.c16
-rw-r--r--security/nss/lib/ckfw/dbm/token.c5
2 files changed, 13 insertions, 8 deletions
diff --git a/security/nss/lib/ckfw/dbm/db.c b/security/nss/lib/ckfw/dbm/db.c
index fc76b42f5..307c7f21d 100644
--- a/security/nss/lib/ckfw/dbm/db.c
+++ b/security/nss/lib/ckfw/dbm/db.c
@@ -198,7 +198,7 @@ nss_dbm_db_get_label
CK_RV *pError
)
{
- NSSUTF8 *rv;
+ NSSUTF8 *rv = (NSSUTF8 *)NULL;
DBT k, v;
int dbrv;
@@ -213,18 +213,18 @@ nss_dbm_db_get_label
dbrv = db->db->get(db->db, &k, &v, 0);
if( 0 == dbrv ) {
- ;
+ rv = nssUTF8_Duplicate((NSSUTF8 *)v.data, arena);
+ if( (NSSUTF8 *)NULL == rv ) {
+ *pError = CKR_HOST_MEMORY;
+ }
} else if( dbrv > 0 ) {
- v.data = "";
+ /* Just return null */
+ ;
} else {
*pError = CKR_DEVICE_ERROR;
- v.data = "";
+ ;
}
- rv = nssUTF8_Duplicate((NSSUTF8 *)v.data, arena);
- if( (NSSUTF8 *)NULL == rv ) {
- *pError = CKR_HOST_MEMORY;
- }
(void)NSSCKFWMutex_Unlock(db->crustylock);
}
diff --git a/security/nss/lib/ckfw/dbm/token.c b/security/nss/lib/ckfw/dbm/token.c
index 7a594ab1d..7c7fbf9e5 100644
--- a/security/nss/lib/ckfw/dbm/token.c
+++ b/security/nss/lib/ckfw/dbm/token.c
@@ -147,6 +147,11 @@ nss_dbm_mdToken_GetLabel
token->label = nss_dbm_db_get_label(token->slot->token_db, token->arena, pError);
}
+ /* If no label has been set, return *something* */
+ if( (NSSUTF8 *)NULL == token->label ) {
+ return token->slot->filename;
+ }
+
return token->label;
}