diff options
author | roeber%netscape.com <devnull@localhost> | 2000-05-17 18:28:13 +0000 |
---|---|---|
committer | roeber%netscape.com <devnull@localhost> | 2000-05-17 18:28:13 +0000 |
commit | 19e40114414a391cfca1287fa8f3856bd66b8ee5 (patch) | |
tree | 84c9c8fd828dd9ee0d514062cb59316d7a4c7e14 | |
parent | cfa5feba243b962ee26b4a422017334527dc2aeb (diff) | |
download | nss-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.c | 16 | ||||
-rw-r--r-- | security/nss/lib/ckfw/dbm/token.c | 5 |
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; } |